다음을 통해 공유


DataSet 콘텐츠를 XML 데이터로 작성

ADO.NET 스키마를 사용하거나 사용하지 않고 XML 표현 DataSet을 작성할 수 있습니다. 스키마 정보가 XML과 인라인으로 포함된 경우 XSD(XML 스키마 정의 언어)를 사용하여 작성됩니다. 스키마에는 관계 및 제약 조건 정의 DataSet 뿐만 아니라 테이블 정의도 포함됩니다.

XML DataSet 데이터로 작성된 경우 행은 DataSet 현재 버전으로 작성됩니다. 그러나 행의 DataSet 현재 값과 원래 값이 모두 포함되도록 DiffGram으로 작성할 수도 있습니다.

파일, 스트림, DataSet 또는 문자열에 XML 표현 을 쓸 수 있습니다. 이러한 선택은 XML 표현 DataSet을 전송하는 방법에 대한 뛰어난 유연성을 제공합니다. 문자열로 XML 표현을 DataSet 가져오려면 다음 예제와 같이 GetXml 메서드를 사용합니다.

Dim xmlDS As String = custDS.GetXml()  
string xmlDS = custDS.GetXml();  

GetXml 은 스키마 정보가 없는 XML 표현을 DataSet 반환합니다. XML 스키마로 스키마 정보를 DataSet 문자열에 쓰려면 GetXmlSchema를 사용합니다.

파일, 스트림 또는 DataSet을(를) 쓰기 위해서는 WriteXml 메서드를 사용합니다. WriteXml에 전달하는 첫 번째 매개 변수는 XML 출력의 대상입니다. 예를 들어 파일 이름, System.IO.TextWriter 개체 등이 포함된 문자열을 전달합니다. XmlWriteMode의 선택적 두 번째 매개 변수를 전달하여 XML 출력을 작성하는 방법을 지정할 수 있습니다.

다음 표에서는 XmlWriteMode에 대한 옵션을 보여줍니다.

XmlWriteMode 옵션 설명
스키마 무시하기 XML 스키마 없이 현재 내용을 XML 데이터로 DataSet에 작성합니다. 기본값입니다.
WriteSchema 관계형 구조를 인라인 XML 스키마로 사용하여 XML 데이터의 현재 내용을 DataSet 씁니다.
DiffGram 원래 값과 현재 값을 포함하여 전체 DataSet 값을 DiffGram으로 씁니다. 자세한 내용은 DiffGrams를 참조하세요.

DataSet 개체가 포함된 XML 표현 을 작성할 때 결과 XML에서 각 관계의 자식 행이 관련 부모 요소 내에 중첩되도록 할 가능성이 큽니다. 이렇게 하려면 DataRelation을 추가할 때 DataRelationNested 속성을 DataSet로 설정합니다. 자세한 내용은 데이터 관계 중첩을 참조하세요.

다음은 파일에 대한 XML 표현 DataSet 을 작성하는 방법에 대한 두 가지 예입니다. 첫 번째 예제에서는 결과 XML의 파일 이름을 WriteXml에 문자열로 전달합니다. 두 번째 예제에서는 System.IO.StreamWriter 개체를 전달합니다.

custDS.WriteXml("Customers.xml", XmlWriteMode.WriteSchema)  
custDS.WriteXml("Customers.xml", XmlWriteMode.WriteSchema);  
Dim xmlSW As System.IO.StreamWriter = New System.IO.StreamWriter("Customers.xml")  
custDS.WriteXml(xmlSW, XmlWriteMode.WriteSchema)  
xmlSW.Close()  
System.IO.StreamWriter xmlSW = new System.IO.StreamWriter("Customers.xml");  
custDS.WriteXml(xmlSW, XmlWriteMode.WriteSchema);  
xmlSW.Close();  

XML 요소, 특성 및 텍스트에 열 매핑

DataColumn 개체의 ColumnMapping 속성을 사용하여 XML에서 테이블의 열을 나타내는 방법을 지정할 수 있습니다. 다음 표에서는 테이블 열의 ColumnMapping 속성에 대한 다양한 MappingType 값과 결과 XML을 보여 있습니다.

MappingType 값 설명
요소 기본값입니다. 열은 ColumnName이 요소의 이름이고 열 내용이 요소의 텍스트로 기록되는 XML 요소로 작성됩니다. 다음은 그 예입니다.

<ColumnName>Column Contents</ColumnName>
속성 열은 ColumnName이 특성의 이름이고 열의 내용이 특성 값으로 작성된 현재 행에 대한 XML 요소의 XML 특성으로 작성됩니다. 다음은 그 예입니다.

<RowElement ColumnName="Column Contents" />
SimpleContent 열의 내용은 현재 행의 XML 요소에 텍스트로 작성됩니다. 다음은 그 예입니다.

<RowElement>Column Contents</RowElement>

요소 열 또는 중첩된 관계가 있는 테이블의 열에 대해 SimpleContent를 설정할 수 없습니다.
숨겨진 열이 XML 출력에 기록되지 않았습니다.

참고하십시오