Megosztás a következőn keresztül:


Adathalmaz tartalmának írása XML-adatként

A ADO.NET megírhatja egy DataSet, séma vagy anélkül xml-reprezentációját. Ha a sémainformációk beágyazottak az XML-hez, az XML-sémadefiníciós nyelv (XSD) használatával lesz megírva. A séma tartalmazza a tábladefiníciókat, valamint a DataSet relációs és kényszerdefiníciókat.

Ha egy DataSet xml-adatként van megírva, a sorok a DataSet jelenlegi verziókban lesznek megírva. A DataSet sorok azonban DiffGramként is írhatók, így a sorok aktuális és eredeti értékei is szerepelni fognak.

Az XML-reprezentáció DataSet fájlba, streambe, XmlWriterbe vagy sztringbe írható. Ezek a lehetőségek nagy rugalmasságot biztosítanak a DataSet. A sztring XML-reprezentációjának DataSet lekéréséhez használja a GetXml metódust az alábbi példában látható módon.

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

A GetXml a sémaadatok nélküli XML-reprezentációt DataSet adja vissza. Ha a sémainformációkat a DataSet (XML-sémaként) sztringbe szeretné írni, használja a GetXmlSchema parancsot.

Fájlba, streambe vagy XmlWriterbe való íráshoz DataSet használja a WriteXml metódust. A WriteXmlnek átadott első paraméter az XML-kimenet célja. Adjon át például egy fájlnevet, egy System.IO.TextWriter objektumot stb. tartalmazó sztringet. Egy XmlWriteMode opcionális második paraméterét is átadhatja az XML-kimenet megírásának módjának megadásához.

Az alábbi táblázat az XmlWriteMode beállításait mutatja be.

XmlWriteMode beállítás Leírás
IgnoreSchema Xml-séma nélkül írja az DataSet aktuális tartalmat XML-adatként. Ez az alapértelmezett beállítás.
WriteSchema Az XML-adatok aktuális tartalmát DataSet írja be a relációs struktúrával beágyazott XML-sémaként.
DiffGram Az egész DataSet írása DiffGramként, beleértve az eredeti és az aktuális értékeket is. További információ: DiffGrams.

DataRelation-objektumokat tartalmazó XML-reprezentáció DataSet írásakor valószínűleg azt szeretné, hogy az eredményül kapott XML az egyes relációk gyermeksorait a kapcsolódó szülőelemekbe ágyazva tartalmazza. Ehhez állítsa a DataRelation beágyazott tulajdonságát igaz értékre, amikor hozzáadja a DataRelationt a DataSet. További információ: DataRelations beágyazása.

Az alábbiakban két példát mutatunk be arra, hogyan írhatunk XML-reprezentációt egy DataSet fájlba. Az első példa sztringként adja át az eredményül kapott XML fájlnevét a WriteXmlnek. A második példa egy System.IO.StreamWriter objektumot ad át.

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

Oszlopok leképezése XML-elemekhez, attribútumokhoz és szöveghez

A DataColumn objektum ColumnMapping tulajdonságával megadhatja, hogyan jelenik meg egy tábla oszlopa az XML-ben. Az alábbi táblázat egy táblaoszlop ColumnMapping tulajdonságának különböző MappingType értékeit és az eredményként kapott XML-t mutatja be.

MappingType érték Leírás
Elem Ez az alapértelmezett beállítás. Az oszlop XML-elemként van megírva, ahol a ColumnName az elem neve, az oszlop tartalma pedig az elem szövegeként lesz megírva. Példa:

<ColumnName>Column Contents</ColumnName>
Attribútum Az oszlop az aktuális sor XML-elemének XML-attribútumaként van megírva, ahol a ColumnName az attribútum neve, az oszlop tartalma pedig az attribútum értékeként lesz megírva. Példa:

<RowElement ColumnName="Column Contents" />
SimpleContent Az oszlop tartalma szövegként van megírva az aktuális sor XML-elemében. Példa:

<RowElement>Column Contents</RowElement>

Vegye figyelembe, hogy a SimpleContent nem állítható be elemoszlopokat vagy beágyazott kapcsolatokat tartalmazó tábla oszlopához.
Rejtett Az oszlop nem az XML-kimenetben van megírva.

Lásd még