Menulis Konten DataSet sebagai Data XML

Dalam ADO.NET Anda dapat menulis representasi XML dari DataSet, dengan atau tanpa skemanya. Jika informasi skema disertakan sebaris dengan XML, informasi tersebut ditulis menggunakan bahasa definisi Skema XML (XSD). Skema itu berisi definisi tabel DataSet serta definisi hubungan dan batasan.

Jika DataSet ditulis sebagai data XML, baris dalam DataSet ditulis dalam versinya saat ini. Namun, DataSet juga dapat ditulis sebagai DiffGram sehingga nilai baris saat ini dan yang asli akan disertakan.

Representasi XML DataSet dapat ditulis ke file, aliran, XmlWriter, atau string. Pilihan ini memberikan Anda fleksibilitas metode yang luas untuk mengangkut representasi XML dari DataSet. Untuk mendapatkan representasi XML DataSet sebagai string, gunakan metode GetXml seperti yang ditunjukkan dalam contoh berikut.

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

GetXml mengembalikan representasi XML dari DataSet tanpa informasi skema. Untuk menulis informasi skema dari DataSet (sebagai Skema XML) ke string, gunakan GetXmlSchema.

Untuk menulis DataSet ke file, stream, atau XmlWriter, gunakan metode WriteXml. Parameter pertama yang Anda teruskan ke WriteXml adalah tujuan output XML. Misalnya, teruskan string yang berisi nama file, objek System.IO.TextWriter, dan sebagainya. Anda dapat meneruskan parameter kedua opsional xmlWriteMode untuk menentukan bagaimana output XML akan ditulis.

Tabel berikut menunjukkan opsi untuk XmlWriteMode.

Opsi XmlWriteMode Deskripsi
IgnoreSchema Menulis konten saat ini dari DataSet sebagai data XML, tanpa Skema XML. Ini adalah default.
WriteSchema Menulis konten saat ini dari DataSet sebagai data XML dengan struktur relasional sebagai Skema XML sebaris.
DiffGram Menulis keseluruhan DataSet sebagai DiffGram, termasuk nilai asli dan nilai saat ini. Untuk informasi selengkapnya, lihat DiffGrams.

Saat menulis representasi XML dari DataSet yang berisi objek DataRelation, kemungkinan besar Anda ingin XML yang dihasilkan memiliki baris turunan dari setiap hubungan yang berlapis dalam elemen induk terkait. Untuk mencapai hal ini, atur properti Bersarang dari DataRelation ke benar saat Anda menambahkan DataRelation ke DataSet. Untuk informasi selengkapnya, lihat Sarangkan DataRelations.

Berikut ini adalah dua contoh cara menulis representasi XML dari DataSet ke file. Contoh pertama meneruskan nama file untuk XML yang dihasilkan sebagai string ke WriteXml. Contoh kedua meneruskan objek 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();  

Memetakan Kolom ke Elemen XML, Atribut, dan Teks

Anda dapat menentukan bagaimana kolom tabel direpresentasikan dalam XML menggunakan properti ColumnMapping dari objek DataColumn. Tabel berikut ini memperlihatkan nilai MappingType yang berbeda untuk properti ColumnMapping sebuah kolom tabel, dan XML yang menghasilkannya.

Nilai MappingType Deskripsi
Elemen Ini adalah default. Kolom ditulis sebagai elemen XML di mana ColumnName adalah nama elemen dan konten kolom ditulis sebagai teks elemen tersebut. Misalnya:

<ColumnName>Column Contents</ColumnName>
Atribut Kolom ditulis sebagai atribut XML dari elemen XML untuk baris saat ini di mana ColumnName adalah nama atribut dan Konten kolom ditulis sebagai nilai atribut. Misalnya:

<RowElement ColumnName="Column Contents" />
SimpleContent Konten kolom ditulis sebagai teks dalam elemen XML untuk baris saat ini. Misalnya:

<RowElement>Column Contents</RowElement>

Perhatikan bahwa SimpleContent tidak dapat diatur untuk kolom tabel yang memiliki kolom Elemen atau hubungan berlapis.
Tersembunyi Kolom tidak ditulis dalam output XML.

Lihat juga