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. |