Språk
Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
I ADO.NET kan du skriva en XML-representation av en DataSet, med eller utan dess schema. Om schemainformation ingår i xml-koden skrivs den med xml-schemadefinitionsspråket (XSD). Schemat innehåller tabelldefinitionerna DataSet för samt relations- och villkorsdefinitionerna.
När en DataSet skrivs som XML-data skrivs raderna i DataSet i deras aktuella versioner. Men DataSet kan också skrivas som ett DiffGram så att både de aktuella och de ursprungliga värdena för raderna inkluderas.
XML-representationen av DataSet kan skrivas till en fil, en dataström, en XmlWriter eller en sträng. De här alternativen ger stor flexibilitet för hur du transporterar XML-representationen av DataSet. Om du vill hämta XML-representationen DataSet av som en sträng använder du GetXml metoden enligt följande exempel.
Dim xmlDS As String = custDS.GetXml()
string xmlDS = custDS.GetXml();
GetXml returnerar XML-representationen av DataSet utan schemainformation. Om du vill skriva schemainformationen DataSet från (som XML-schema) till en sträng använder du GetXmlSchema.
Om du vill skriva en DataSet till en fil, dataström eller XmlWriter använder du WriteXml metoden . Den första parametern som du skickar till WriteXml är destinationen för XML-utdata. Du kan till exempel skicka en sträng som innehåller ett filnamn, ett System.IO.TextWriter-objekt och så vidare. Du kan skicka en valfri andra parameter av typen XmlWriteMode för att ange hur XML-utdata ska skrivas.
I följande tabell visas alternativen för XmlWriteMode.
| XmlWriteMode-alternativ | Beskrivning |
|---|---|
| IgnoreSchema | Skriver det aktuella innehållet i DataSet som XML-data, utan ett XML-schema. Det här är standardinställningen. |
| WriteSchema | Skriver de nuvarande innehållen i DataSet som XML-data med relationsstrukturen som en integrerad XML-schema. |
| DiffGram | Skriver hela DataSet som ett DiffGram, inklusive ursprungliga och aktuella värden. Mer information finns i DiffGrams. |
När du skriver en XML-representation av en DataSet som innehåller DataRelation objekt vill du förmodligen att den resulterande XML-koden ska ha de underordnade raderna i varje relation kapslad i deras relaterade överordnade element. För att åstadkomma detta anger du egenskapen Nested för DataRelation till true när du lägger till DataRelation i DataSet. För mer information, se Kapslade datarelationer.
Följande är två exempel på hur du skriver XML-representationen av en DataSet till en fil. Det första exemplet skickar filnamnet för den resulterande XML:en som en sträng till WriteXml. Det andra exemplet skickar ett System.IO.StreamWriter-objekt .
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();
Mappa kolumner till XML-element, attribut och text
Du kan ange hur en kolumn i en tabell representeras i XML med hjälp ColumnMapping av objektets DataColumn egenskap. I följande tabell visas de olika MappingType värdena för egenskapen för ColumnMapping en tabellkolumn och den resulterande XML-koden.
| MappingType-värde | Beskrivning |
|---|---|
| Element | Det här är standardinställningen. Kolumnen skrivs som ett XML-element där ColumnName är namnet på elementet och innehållet i kolumnen skrivs som elementets text. Till exempel:<ColumnName>Column Contents</ColumnName> |
| Attribut | Kolumnen skrivs som ett XML-attribut för XML-elementet för den aktuella raden där ColumnName är namnet på attributet och innehållet i kolumnen skrivs som värdet för attributet. Till exempel:<RowElement ColumnName="Column Contents" /> |
| SimpleContent | Innehållet i kolumnen skrivs som text i XML-elementet för den aktuella raden. Till exempel:<RowElement>Column Contents</RowElement>Observera att det inte går att SimpleContent ange för en kolumn i en tabell som har Element kolumner eller kapslade relationer. |
| dold | Kolumnen skrivs inte i XML-utdata. |