Bagaimana untuk memvalidasi dokumen XML dengan menggunakan DTD, XDR, atau XSD dalam Visual C#.NET

Terjemahan Artikel Terjemahan Artikel
ID Artikel: 307379 - Melihat produk di mana artikel ini berlaku.
Perbesar semua | Perkecil semua

Pada Halaman ini

RINGKASAN

Artikel ini menunjukkan bagaimana menerapkan jenis dokumen Definisi (DTD), skema Microsoft XML Data mengurangi (XDR), atau skema XML Definisi bahasa (XSD) skema Extensible Markup Language (XML) dokumen. Artikel ini juga menjelaskan cara menggunakan XmlValidatingReader kelas untuk memvalidasi dokumen XML terhadap tata bahasa tertentu, serta cara menggunakan XmlSchemaCollection kelas untuk cache skema dalam memori untuk mengoptimalkan XML validasi.

Dokumen XML mengandung unsur-unsur dan atribut. Mereka menyediakan cara yang fleksibel dan kuat untuk bertukar data antara aplikasi dan organisasi. Untuk menentukan struktur diizinkan dan isi XML dokumen, Anda dapat menulis DTD, XDR skema, atau skema XSD. XSD skema yang metode yang disukai untuk menentukan tata bahasa XML di Microsoft.NET Framework, tapi DTDs dan XDR skema juga didukung.

Persyaratan

Artikel ini mengasumsikan bahwa Anda akrab dengan topik-topik berikut:
  • Microsoft Visual C#.NET atau Microsoft Visual Basic.NET sintaks
  • Konsep-konsep XML, termasuk masalah validasi

Membuat dokumen XML

  1. Mulai Visual Studio.NET.
  2. Buat file XML baru di komputer lokal.
  3. Tambahkan data berikut ke dokumen XML untuk mewakili produk pada katalog:
    <Product ProductID="123">
       <ProductName>Rugby jersey</ProductName>
    </Product>
    					
  4. Simpan berkas sebagai Product.xml di folder baru bernama C:\MyFolder.

Menggunakan DTD

DTD yang KAKU, dan membuat Link ke dokumen XML

  1. Dalam Visual Studio.NET, membuat teks kosong file.
  2. Tambahkan Deklarasi DTD berikut ke file untuk menggambarkan tata bahasa dokumen XML:
    <!ELEMENT Product (ProductName)>
    <!ATTLIST Product ProductID CDATA #REQUIRED>
    <!ELEMENT ProductName (#PCDATA)>
    					
  3. Simpan berkas sebagai Product.dtd di C:\MyFolder direktori.
  4. Buka Product.xml dalam Visual Studio.NET.
  5. Tambahkan berikut DOCTYPE pernyataan ke atas Product.xml untuk link dokumen XML untuk DTD file:
    <?xml version="1.0"?>
    <!DOCTYPE Product SYSTEM "Product.dtd">
    					
  6. Simpan dokumen XML diubah sebagai ProductWithDTD.xml.

Penggunaan DTD untuk memvalidasi dokumen XML

  1. Dalam Visual Studio.NET, membuat baru Visual C# konsol Aplikasi proyek bernama ValidateXml.
  2. Menambahkan dua menggunakan pernyataan ke awal Class1.cs sebagai berikut:
    using System.Xml;        // for XmlTextReader and XmlValidatingReader
    using System.Xml.Schema; // for XmlSchemaCollection (which is used later)
    					
  3. Dalam Class1.cs, menyatakan variabel boolean bernama isValid sebelum memulai Utama metode sebagai berikut:
    private static bool isValid = true;      // If a validation error occurs,
                                             // set this flag to false in the
                                             // validation event handler. 
  4. Membuat XmlTextReader objek untuk membaca dokumen XML dari file teks dalam Utama metode, dan kemudian membuat XmlValidatingReader untuk memvalidasi data XML ini sebagai berikut:
    XmlTextReader r = new XmlTextReader("C:\\MyFolder\\ProductWithDTD.xml");
    XmlValidatingReader v = new XmlValidatingReader(r);
    					
  5. The ValidationType properti XmlValidatingReader objek menunjukkan jenis validasi yang diperlukan (DTD, XDR, atau Skema). Tetapkan properti ini DTD sebagai berikut:
    v.ValidationType = ValidationType.DTD;
    					
  6. Jika terjadi kesalahan validasi, pembaca memvalidasi menghasilkan acara validasi. Tambahkan kode berikut untuk mendaftar validasi event handler (Anda akan menerapkan MyValidationEventHandler metode pada langkah 8):
    v.ValidationEventHandler += 
       new ValidationEventHandler(MyValidationEventHandler);
    					
  7. Tambahkan kode berikut untuk membaca dan memvalidasi XML dokumen. Jika terjadi kesalahan validasi, MyValidationEventHandler dipanggil untuk mengatasi kesalahan. Metode ini set isValid untuk palsu (lihat langkah 8). Anda dapat memeriksa status isValid Setelah validasi untuk melihat dokumen apakah sah atau tidak sah.
    while (v.Read())
    {
       // Can add code here to process the content.
    }
    v.Close();
    
    // Check whether the document is valid or invalid.
    if (isValid)
       Console.WriteLine("Document is valid");
    else
       Console.WriteLine("Document is invalid");
    					
  8. Menulis MyValidationEventHandler metode setelah Utama metode sebagai berikut:
    public static void MyValidationEventHandler(object sender, 
                                                ValidationEventArgs args) 
    {
       isValid = false;
       Console.WriteLine("Validation event\n" + args.Message);
    }
    					
  9. Membangun dan menjalankan aplikasi. Aplikasi harus laporan bahwa dokumen XML sah.
  10. Dalam Visual Studio.NET, mengubah ProductWithDTD.xml untuk membatalkan itu (misalnya, menghapus "<productname>Rugby Jersey</productname>"elemen).
  11. Menjalankan aplikasi lagi. Anda harus menerima berikut pesan galat:
    Validasi acara
    Elemen 'Produk' memiliki konten yang tidak sah. Diharapkan 'ProductName'.
    Terjadi kesalahan pada file:///C:/MyFolder/ProductWithDTD.XML(4, 5).
    Dokumen tidak sah

Dengan menggunakan skema XDR

Membuat skema XDR, dan Link ke dokumen XML

  1. Dalam Visual Studio.NET, membuat teks kosong file.
  2. Tambahkan definisi skema XDR berikut ke file untuk menggambarkan tata bahasa dokumen XML:
    <?xml version="1.0"?>
    <Schema name="ProductSchema" 
            xmlns="urn:schemas-microsoft-com:xml-data"
            xmlns:dt="urn:schemas-microsoft-com:datatypes">
    
       <ElementType name="Product" content="eltOnly">
          <attribute type="ProductID" required="yes"/>
          <element type="ProductName"/>
       </ElementType>
    
       <AttributeType name="ProductID" dt:type="int"/>
       <ElementType name="ProductName" dt:type="string"/>
    </Schema>
    					
  3. Simpan berkas sebagai Product.xdr di C:\MyFolder direktori.
  4. Buka file Product.xml asli, dan link ke XDR skema sebagai berikut:
    <?xml version="1.0"?>
    <Product ProductID="123" xmlns="x-schema:Product.xdr"> 
       <ProductName>Rugby jersey</ProductName>
    </Product>
    					
  5. Simpan dokumen XML diubah sebagai ProductWithXDR.xml.

Menggunakan skema XDR untuk memvalidasi dokumen XML

  1. Mengubah aplikasi Anda sehingga XmlTextReader beban ProductWithXDR.xml sebagai berikut:
    XmlTextReader r = new XmlTextReader("C:\\MyFolder\\ProductWithXDR.xml");
    					
  2. Menetapkan ValidationType untuk XDR sehingga pembaca memvalidasi melakukan validasi XDR:
    v.ValidationType = ValidationType.XDR;
    					
  3. Membangun dan menjalankan aplikasi. Aplikasi harus laporan bahwa dokumen XML sah.
  4. Memodifikasi ProductWithXDR.xml untuk membatalkan itu.
  5. Membangun dan menjalankan aplikasi lagi. Anda harus menerima kesalahan validasi.

Dengan menggunakan skema XSD

Membuat skema XSD, dan Link ke dokumen XML

  1. Dalam Visual Studio.NET, membuat teks kosong file.
  2. Tambahkan definisi skema XSD berikut ke file untuk menggambarkan tata bahasa dokumen XML:
    <?xml version="1.0"?>
    <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
       <xsd:element name="Product">
          <xsd:complexType>
             <xsd:sequence>
                <xsd:element name="ProductName" type="xsd:string"/>
             </xsd:sequence>
             <xsd:attribute name="ProductID" use="required" type="xsd:int"/>
          </xsd:complexType>
       </xsd:element>
    </xsd:schema>
    					
  3. Simpan berkas sebagai Product.xsd di C:\MyFolder direktori.
  4. Buka Product.xml asli, dan link ke XSD skema sebagai berikut:
    <?xml version="1.0"?>
    <Product ProductID="123" 
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:noNamespaceSchemaLocation="Product.xsd">
       <ProductName>Rugby jersey</ProductName>
    </Product>
    					
  5. Simpan dokumen XML diubah sebagai ProductWithXSD.xml.

Menggunakan skema XSD untuk memvalidasi dokumen XML

  1. Mengubah aplikasi Anda sehingga XmlTextReader beban ProductWithXSD.xml sebagai berikut:
    XmlTextReader r = new XmlTextReader("C:\\MyFolder\\ProductWithXSD.xml");
    					
  2. Menetapkan ValidationType untuk Skema sehingga pembaca memvalidasi melakukan validasi skema XSD:
    v.ValidationType = ValidationType.Schema;
    					
  3. Membangun dan menjalankan aplikasi menggunakan skema XSD untuk memvalidasi dokumen XML.

Menggunakan ruang nama dalam skema XSD

  1. Dalam Visual Studio.NET, terbuka ProductWithXSD.xml.
  2. Menyatakan default namespace guci: MyNamespace dalam dokumen. Selain itu, memodifikasi XSD link jadi itu menentukan XSD skema untuk memvalidasi konten dalam namespace ini:
    <?xml version="1.0"?>
    <Product ProductID="123" 
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xmlns="urn:MyNamespace"
             xsi:schemaLocation="urn:MyNamespace Product.xsd">
       <ProductName>Rugby jersey</ProductName>
    </Product>
    					
  3. Simpan perubahan Anda ke ProductWithXSD.xml.
  4. Buka Product.xsd. Memodifikasi tag mulai <xsd:schema> sebagai berikut sehingga skema berlaku untuk namespace<b00> </b00> </xsd:schema>guci: MyNamespace:
    <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
                targetNamespace="urn:MyNamespace"
                elementFormDefault="qualified">
    					
  5. Simpan perubahan Anda ke Product.xsd.
  6. Membangun dan menjalankan aplikasi menggunakan skema XSD untuk memvalidasi dokumen XML.

Cache Namespaces

  1. Dalam Visual Studio.NET, terbuka Class1.cs. Membuat XmlSchemaCollection objek pada awal Utama metode sebagai berikut:
    XmlSchemaCollection cache = new XmlSchemaCollection();
    					
  2. The XmlSchemaCollection objek memungkinkan Anda untuk cache skema dalam memori untuk meningkatkan kinerja. Setiap skema terkait dengan namespace berbeda. Tambahkan kode berikut ke cache Product.xsd:
    cache.Add("urn:MyNamespace", "C:\\MyFolder\\Product.xsd");
    					
  3. Tambahkan pernyataan berikut setelah kode yang menciptakanXmlValidatingReader objek untuk menambahkan cache skema yang XmlValidatingReader sehingga pembaca dapat menggunakan skema dalam memori:
    v.Schemas.Add(cache);
    					

Memverifikasi bahwa ia bekerja

  1. Membangun dan kemudian menjalankan aplikasi.
  2. Memverifikasi bahwa dokumen XML masih divalidasi terhadap XSD skema.
  3. Memodifikasi ProductWithXSD.xml untuk membatalkan itu.
  4. Memverifikasi bahwa aplikasi mendeteksi validasi ini kesalahan.

Properti

ID Artikel: 307379 - Kajian Terakhir: 24 September 2011 - Revisi: 2.0
Berlaku bagi:
  • Microsoft Visual C# .NET 2003 Standard Edition
  • Microsoft Visual C# .NET 2002 Standard Edition
  • Microsoft .NET Framework 1.1
  • Microsoft .NET Framework 1.0
Kata kunci: 
kbhowtomaster kbmt KB307379 KbMtid
Penerjemahan Mesin
PENTING: Artikel ini diterjemahkan menggunakan perangkat lunak mesin penerjemah Microsoft dan bukan oleh seorang penerjemah. Microsoft menawarkan artikel yang diterjemahkan oleh seorang penerjemah maupun artikel yang diterjemahkan menggunakan mesin sehingga Anda akan memiliki akses ke seluruh artikel baru yang diterbitkan di Pangkalan Pengetahuan (Knowledge Base) dalam bahasa yang Anda gunakan. Namun, artikel yang diterjemahkan menggunakan mesin tidak selalu sempurna. Artikel tersebut mungkin memiliki kesalahan kosa kata, sintaksis, atau tata bahasa, hampir sama seperti orang asing yang berbicara dalam bahasa Anda. Microsoft tidak bertanggung jawab terhadap akurasi, kesalahan atau kerusakan yang disebabkan karena kesalahan penerjemahan konten atau penggunaannya oleh para pelanggan. Microsoft juga sering memperbarui perangkat lunak mesin penerjemah.
Klik disini untuk melihat versi Inggris dari artikel ini:307379

Berikan Masukan

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com