Kopírování obsahu datové sady jako dat XML

V ADO.NET můžete napsat reprezentaci DataSetXML s nebo bez jeho schématu. Pokud jsou informace o schématu vložené do XML, zapisují se pomocí jazyka XSD (XML Schema Definition Language). Schéma obsahuje definice DataSet tabulek a také definice relací a omezení.

Při zápisu DataSet jako dat XML se řádky v datech DataSet zapisují v jejich aktuálních verzích. DataSet Lze však také zapsat jako DiffGram, aby aktuální i původní hodnoty řádků byly zahrnuty.

Reprezentace XML DataSet může být zapsána do souboru, streamu, XmlWriter nebo řetězce. Tyto volby poskytují velkou flexibilitu pro přenos reprezentace DataSetXML . Chcete-li získat reprezentaci DataSet XML jako řetězec, použijte GetXml metoda, jak je znázorněno v následujícím příkladu.

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

Funkce GetXml vrátí reprezentaci XML bez informací o schématu DataSet . K zápisu informací o schématu DataSet z (jako schématu XML) do řetězce použijte GetXmlSchema.

K zápisu DataSet do souboru, streamu nebo XmlWriter použijte WriteXml metoda. Prvním parametrem, který předáte WriteXml , je cíl výstupu XML. Například předejte řetězec obsahující název souboru, System.IO.TextWriter objekt atd. Můžete předat volitelný druhý parametr XmlWriteMode určit, jak se má výstup XML zapisovat.

Následující tabulka uvádí možnosti pro XmlWriteMode.

Možnost XmlWriteMode Popis
IgnoreSchema Zapíše aktuální obsah DataSet dat XML bez schématu XML. Tato možnost je výchozí.
WriteSchema Zapíše aktuální obsah DataSet dat ve formátu XML s relační strukturou jako vložené schéma XML.
Diffgram Zapíše celý DataSet objekt jako diffGram, včetně původních a aktuálních hodnot. Další informace naleznete v tématu DiffGrams.

Při zápisu reprezentace XML objektu DataSet , který obsahuje DataRelation objekty, budete pravděpodobně chtít, aby výsledný XML měl podřízené řádky každé relace vnořené do jejich souvisejících nadřazených elementů. Chcete-li toho dosáhnout, nastavte vnořenou vlastnost DataRelation na true při přidání DataRelation do DataSet. Další informace najdete v tématu Vnoření datovýchrelací.

Následuje dva příklady zápisu reprezentace DataSet XML souboru. První příklad předá název souboru výsledného XML jako řetězec WriteXml. Druhý příklad předá Objekt 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();  

Mapování sloupců na elementy XML, atributy a text

Pomocí vlastnosti ColumnMapping objektu DataColumn můžete určit, jak je sloupec tabulky reprezentován ve formátu XML. V následující tabulce jsou uvedeny různé hodnoty MappingType pro vlastnost ColumnMapping sloupce tabulky a výsledné XML.

Hodnota MappingType Popis
Element Tato možnost je výchozí. Sloupec je zapsán jako xml element, kde ColumnName je název elementu a obsah sloupce jsou zapsány jako text elementu. Příklad:

<ColumnName>Column Contents</ColumnName>
Atribut Sloupec je zapsán jako atribut XML elementu XML pro aktuální řádek, kde ColumnName je název atributu a obsah sloupce jsou zapsány jako hodnota atributu. Příklad:

<RowElement ColumnName="Column Contents" />
SimpleContent Obsah sloupce se zapíše jako text v elementu XML pro aktuální řádek. Příklad:

<RowElement>Column Contents</RowElement>

Všimněte si, že SimpleContent nelze nastavit pro sloupec tabulky, který obsahuje sloupce elementů nebo vnořené relace.
Skryté Sloupec není zapsán ve výstupu XML.

Viz také