Pernyataan tersebut dijelaskan di bagian program. Kelas XmlWriter terutama digunakan untuk pembuatan file XML.
Berikut ini adalah proses menghasilkan file XML yang sesuai dari database relasional. Karena XML hanyalah middleware, Skema atau DTD diabaikan.
1 private void Page_Load(pengirim objek, System.EventArgs e)
2 {
3 //Masukkan kode pengguna di sini untuk menginisialisasi halaman
4 //Definisi informasi dasar
5 String strTableName='sistemtipe';
6 String strConnection="server=suntears;user id=sa;password=041210;database=webapplication1_db";
7 String strSql="pilih * dari "+strTableName;
8 SqlConnection objConn=SqlConnection baru(strConnection);
9 SqlDataAdapter objAdapter=SqlDataAdapter baru(strSql,objConn);
10 Kumpulan Data objDSet=Set Data baru();
11 objAdapter.Fill(objDSet,"temp");
12 XmlTextWriter objXmlWriter;
13 String strtemp1=Permintaan.PhysicalApplicationPath;
14 String strpath=strtemp1+"qiming.xml";
15 //Inisialisasi XmlWriter. Gunakan kelas ini untuk menulis file XML
16 objXmlWriter=XmlTextWriter baru(strpath,null);
17 //Buat deklarasi XML di awal
18 objXmlWriter.WriteStartDocument();
19 //Buat elemen root xml1
20 objXmlWriter.WriteStartElement("xml1");
21 //Nama tabel adalah nama elemen, nama field adalah atribut, dan record dalam tabel adalah nilai atribut.
22 for(int i=0;i<objDSet.Tables["temp"].Rows.Count;i++)
dua puluh tiga {
24 objXmlWriter.WriteStartElement("menu");
25 for(int j=0;j<objDSet.Tables["temp"].Columns.Count;j++)
26 {
27 //Menulis atribut
28 objXmlWriter.WriteAttributeString(objDSet.Tables["temp"].Columns[j].ColumnName,objDSet.Tables["temp"].Rows[i][j].ToString());
29 }
30 objXmlWriter.WriteEndElement();
31}
32 objXmlWriter.WriteEndElement();
33 objXmlWriter.WriteEndDocument();
34 //Gunakan metode close untuk menutup file, jika tidak, file akan dikunci
35 objXmlWriter.Tutup();
36 // Menampilkan hasilnya pada halaman
37 string strXmlHasil;
38 StreamReader objSR = File.OpenText(strpath);
39 strXmlHasil = objSR.ReadToEnd();
40 objSR.Tutup();
41 Respon.Write("<pre>" + Server.HtmlEncode(strXmlResult) + "<pre>");
42 }
Berikut ini adalah kode untuk menghasilkan database relasional melalui file XML yang dihasilkan oleh program di atas
1 private void Page_Load(pengirim objek, System.EventArgs e)
2 {
3 //Masukkan kode pengguna di sini untuk menginisialisasi halaman
4 //Definisi informasi dasar
5 int cx=1;
6 string strConn="server=suntears;id pengguna=sa;kata sandi=;database=xml_example";
7 string strappstr=Permintaan.PhysicalApplicationPath;
8 senar strpath=strappstr+"qiming.xml";
9 string strtablename="xml1";
10 string strCreatetable="buat tabel "+strtablename+"(";
11 XmlTextReader objXmlReader=XmlTextReader baru(strpath);
12 SqlConnection objConn=SqlConnection baru(strConn);
13 SqlCommand objCommand;
14 SqlDataAdapter objAdapter;
15 Kumpulan Data objDSet=Set Data baru();
16 Objrow DataRow;
17 XmlNodeType objNodeType;
18 //Gunakan kelas XmlReader untuk operasi akses file XML
19 //XmlReader mengadopsi mode tarik. Oleh karena itu, setiap node diiterasi melalui metode Read()
20 while(objXmlReader.Baca())
dua puluh satu {
22 objNodeType=objXmlReader.NodeType;
23 //Melakukan operasi berbeda berdasarkan tipe node
24 saklar (objNodeType)
25 {
26 //Deklarasi di awal file XML
27 kasus XmlNodeType.XmlDeklarasi:
28 Respon.Write("11111"+objXmlReader.Nama+"<br>");
29 istirahat;
30 //Tipe simpul normal
31 kasus XmlNodeType.Elemen:
32 //Menentukan apakah elemen tersebut merupakan elemen root berdasarkan jumlah atribut
33 jika(objXmlReader.AttributeCount>0)
34 {
35 //cx sebagai bit bendera. Hasilkan database berdasarkan struktur elemen saat mengakses node elemen non-root untuk pertama kalinya
36 jika(cx==1)
37 {
38 while(objXmlReader.MoveToNextAttribute())
39 {
40 strCreatetable=strCreatetable+objXmlReader.Nama+" varchar(50), ";
41 }
42 strCreatetable=strCreatetable+")";
43 objCommand=new SqlCommand(strCreatetable,objConn);
44 objConn.Buka();
45 objCommand.ExecuteNonQuery();
46 objConn.Tutup();
47 objAdapter=new SqlDataAdapter("pilih * dari "+strtablename,objConn);
48 objAdapter.Fill(objDSet,strtablename);
49 objXmlReader.MoveToFirstAttribute();
50 //Ubah flag menjadi nilai cx
51cx=0;
52 }
53 //Buang data dalam file XML ke objek DataSet
54 objrow=objDSet.Tables[strtablename].NewRow();
55 objXmlReader.MoveToFirstAttribute();
56 untuk(int j=0;j<objXmlReader.AttributeCount;j++)
57 {
58 objrow[j]=objXmlReader.Value.ToString();
59 objXmlReader.MoveToNextAttribute();
60 }
61 objDSet.Tables[strtablename].Rows.Add(objrow);
62 }
63 istirahat;
64}
65 }
66 //Menampilkan tabel data yang ditransfer
67 DataGrid1.DataSource=objDSet.Tables[strtablename];
68 DataGrid1.DataBind();
69 }Kode untuk memperbarui data ke database belum ditulis. Lakukan sendiri^_^