Gegevenssetinhoud schrijven als XML-gegevens

In ADO.NET kunt u een XML-weergave van een DataSet, met of zonder het schema schrijven. Als schemagegevens inline zijn opgenomen in de XML, wordt deze geschreven met behulp van de XML Schema Definition Language (XSD). Het schema bevat de tabeldefinities van de DataSet en de relationele en beperkingsdefinities.

Wanneer een DataSet bestand als XML-gegevens wordt geschreven, worden de rijen in de DataSet huidige versies geschreven. Het DataSet kan echter ook worden geschreven als een DiffGram, zodat zowel de huidige als de oorspronkelijke waarden van de rijen worden opgenomen.

De XML-weergave van de DataSet bestanden kan worden geschreven naar een bestand, een stroom, een XmlWriter of een tekenreeks. Deze keuzes bieden een grote flexibiliteit voor het transport van de XML-weergave van de DataSet. Als u de XML-weergave van de DataSet als een tekenreeks wilt verkrijgen, gebruikt u de Methode GetXml , zoals wordt weergegeven in het volgende voorbeeld.

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

GetXml retourneert de XML-weergave van de DataSet zonder schemagegevens. Gebruik GetXmlSchema om de schemagegevens van het DataSet (als XML-schema) naar een tekenreeks te schrijven.

Als u een DataSet bestand, stream of XmlWriter wilt schrijven, gebruikt u de methode WriteXml . De eerste parameter die u doorgeeft aan WriteXml , is het doel van de XML-uitvoer. Geef bijvoorbeeld een tekenreeks door die een bestandsnaam, een System.IO.TextWriter-object , enzovoort bevat. U kunt een optionele tweede parameter van een XmlWriteMode doorgeven om op te geven hoe de XML-uitvoer moet worden geschreven.

In de volgende tabel ziet u de opties voor XmlWriteMode.

Optie XmlWriteMode Beschrijving
IgnoreSchema Hiermee schrijft u de huidige inhoud van de DataSet als XML-gegevens, zonder een XML-schema. Dit is de standaardinstelling.
WriteSchema Hiermee schrijft u de huidige inhoud van de DataSet als XML-gegevens met de relationele structuur als inline XML-schema.
DiffGram Hiermee schrijft u het geheel DataSet als een DiffGram, inclusief oorspronkelijke en huidige waarden. Zie DiffGrams voor meer informatie.

Wanneer u een XML-weergave schrijft van een object DataSet dat DataRelation-objecten bevat, wilt u waarschijnlijk dat de resulterende XML de onderliggende rijen bevat van elke relatie die is genest binnen de gerelateerde bovenliggende elementen. Om dit te bereiken, stelt u de geneste eigenschap van de DataRelation in op true wanneer u de DataRelation toevoegt aan de DataSet. Zie Nesting DataRelations voor meer informatie.

Hier volgen twee voorbeelden van het schrijven van de XML-weergave van een DataSet bestand. In het eerste voorbeeld wordt de bestandsnaam voor de resulterende XML als tekenreeks doorgegeven aan WriteXml. In het tweede voorbeeld wordt een System.IO.StreamWriter-object doorgegeven.

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();  

Kolommen toewijzen aan XML-elementen, kenmerken en tekst

U kunt opgeven hoe een kolom van een tabel wordt weergegeven in XML met behulp van de eigenschap ColumnMapping van het DataColumn-object . In de volgende tabel ziet u de verschillende MappingType-waarden voor de eigenschap ColumnMapping van een tabelkolom en de resulterende XML.

MappingType-waarde Beschrijving
Element Dit is de standaardinstelling. De kolom wordt geschreven als een XML-element waarbij ColumnName de naam van het element is en de inhoud van de kolom wordt geschreven als de tekst van het element. Voorbeeld:

<ColumnName>Column Contents</ColumnName>
Kenmerk De kolom wordt geschreven als een XML-kenmerk van het XML-element voor de huidige rij waarin ColumnName de naam van het kenmerk is en de inhoud van de kolom wordt geschreven als de waarde van het kenmerk. Voorbeeld:

<RowElement ColumnName="Column Contents" />
SimpleContent De inhoud van de kolom wordt geschreven als tekst in het XML-element voor de huidige rij. Voorbeeld:

<RowElement>Column Contents</RowElement>

SimpleContent kan niet worden ingesteld voor een kolom van een tabel met elementkolommen of geneste relaties.
Verborgen De kolom is niet geschreven in de XML-uitvoer.

Zie ook