Bagaimana untuk memvalidasi dokumen XML dengan menggunakan DTD, XDR, atau XSD dalam Visual Basic

Terjemahan Artikel Terjemahan Artikel
ID Artikel: 315533 - Melihat produk di mana artikel ini berlaku.
Untuk Microsoft Visual C#.NET versi artikel ini, lihat 307379.
Untuk versi Microsoft Visual Basic 6.0 artikel ini, lihat 309616.


Artikel ini merujuk kepada berikut Microsoft.NET Framework kelas perpustakaan namespaces:
  • System.xml
  • System.xml.schema
Perbesar semua | Perkecil semua

Pada Halaman ini

RINGKASAN

Extensible Markup Language (XML) dokumen berisi unsur-unsur atribut dan menyediakan cara yang fleksibel dan kuat untuk bertukar data antara aplikasi dan organisasi. Untuk menentukan struktur diizinkan dan isi XML dokumen, Anda dapat menulis dokumen jenis definisi (DTD), Microsoft XML Data mengurangi (XDR) skema, atau skema XML definisi bahasa Skema (XSD).

XSD skema adalah cara menentukan XML tata bahasa di.NET Framework, tapi DTDs dan XDR skema yang juga didukung.

Pada artikel ini, Anda akan belajar bagaimana menerapkan DTD, XDR skema, atau XSD skema untuk dokumen XML di Microsoft Visual Basic 2005 atau di Microsoft Visual Basic.NET. Anda akan kemudian Pelajari cara menggunakan XmlValidatingReader kelas untuk memvalidasi dokumen XML terhadap tata bahasa tertentu. Anda juga akan belajar bagaimana menggunakan XmlSchemaCollection kelas untuk cache skema dalam memori sebagai cara untuk mengoptimalkan XML validasi.

Persyaratan

Daftar berikut menguraikan fitur perangkat keras, perangkat lunak, jaringan infrastruktur, dan paket layanan yang Anda butuhkan:
  • Microsoft Visual Basic 2005 atau Microsoft Visual Basic.NET
Artikel ini mengasumsikan bahwa Anda sudah familiar dengan topik-topik berikut:
  • Visual Basic 2005 atau Visual Basic.Sintaks bersih
  • Konsep-konsep XML, termasuk masalah validasi

Membuat dokumen XML

  1. Mulai Microsoft Visual Studio 2005 atau Microsoft Visual Studio.NET. Kemudian, membuat file XML baru (pada Berkas menu, titik Baru, lalu klik Berkas).
  2. Pilih XML File Ketik, dan kemudian klik Terbuka.
  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 dalam folder yang Anda akan dapat mudah akses kemudian (kode sampel di ini Artikel menganggap folder bernama C:\MyFolder).

Membuat DTD dan link ke dokumen XML

  1. Dalam Visual Studio 2005 atau dalam Visual Studio.NET, titik Baru pada Berkas menu, dan kemudian klik Berkas.
  2. Pilih File teks Ketik, dan kemudian klik Terbuka.
  3. Tambahkan Deklarasi DTD berikut ke file untuk menggambarkan tata bahasa dokumen XML:
    <!ELEMENT Product (ProductName)>
    <!ATTLIST Product ProductID CDATA #REQUIRED>
    <!ELEMENT ProductName (#PCDATA)>
    					
  4. Simpan berkas sebagai Product.DTD dalam folder yang sama sebagai dokumen XML.
  5. Membuka kembali Product.xml dalam Visual Studio 2005 atau dalam Visual Studio.NET; untuk melakukan hal ini, titik untuk Terbuka pada Berkas menu, dan kemudian klik Berkas. Tambahkan pernyataan DOCTYPE (di bawah "? xml versi ="1.0"baris), sebagai berikut. Ini link dokumen XML file DTD).
    <?xml version="1.0" encoding="utf-8" ?>
    <!DOCTYPE Product SYSTEM "Product.dtd">
    					
  6. Simpan dokumen XML diubah sebagaiProductWithDTD.xml.

Melakukan validasi dengan menggunakan DTD

  1. Dalam Visual Studio 2005 atau dalam Visual Studio.NET, membuat baru konsol Visual Basic Aplikasi proyek bernama ValidateXmlUsingVB.
  2. Visual Studio 2005 atau Visual Studio.NET menampilkan file baru yang bernama Module1.vb. Pada awal file ini, tambahkan dua Impor pernyataan, sebagai berikut:
    Imports System.Xml          ' For XmlTextReader and XmlValidatingReader
    Imports System.Xml.Schema   ' For XmlSchemaCollection (used later)
    					
  3. Dalam Module1 (sebelum memulai subrutin utama), menyatakan variabel boolean bernama isValid, sebagai berikut:
    'If a validation error occurs,
    ' you will set this flag to False 
    ' in the validation event handler. 
    Private isValid As Boolean = True
    					
  4. Dalam utama subrutin, membuat XmlTextReader objek untuk membaca dokumen XML dari file teks. Kemudian, membuat XmlValidatingReader objek untuk memvalidasi data XML ini:
    Dim r As New XmlTextReader("C:\MyFolder\ProductWithDTD.xml")
    Dim v As New XmlValidatingReader(r)
    					
  5. The XmlValidatingReader objek telah ValidationType properti, yang menunjukkan jenis validasi 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 subrutin MyValidationEventHandler di Langkah 8 bagian ini):
    AddHandler v.ValidationEventHandler, AddressOf MyValidationEventHandler
    					
  7. Tambahkan kode berikut untuk membaca dan memvalidasi XML dokumen. Jika terjadi kesalahan validasi, MyValidationEventHandler akan dipanggil untuk menangani kesalahan. Subrutin ini akan menetapkan isValid untuk Palsu (lihat langkah 8 bagian ini). Anda dapat memeriksa status isValid Setelah validasi untuk melihat dokumen apakah sah atau tidak sah.
    While v.Read()
       ' Could add code here to process the content.
    End While
    v.Close()
    
    ' Check whether the document is valid or invalid.
    If isValid Then
       Console.WriteLine("Document is valid")
    Else
       Console.WriteLine("Document is invalid")
    End If
    					
  8. Setelah subrutin utama, menulis MyValidationEventHandler subrutin, sebagai berikut:
    Public Sub MyValidationEventHandler(ByVal sender As Object, _
                                        ByVal args As ValidationEventArgs)
       isValid = False
       Console.WriteLine("Validation event" & vbCrLf & args.Message)
    End Sub
    					
  9. Membangun dan menjalankan aplikasi.

    Aplikasi harus melaporkan bahwa dokumen XML berlaku.
  10. Dalam Visual Studio 2005 atau dalam Visual Studio.NET, mengubah ProductWithDTD.xml untuk membuat tidak valid (misalnya, Hapus ProductNameRugby Jersey /ProductName elemen).
  11. Menjalankan aplikasi lagi.

    Aplikasi harus menampilkan pesan kesalahan berikut:
    Validasi acara Elemen 'Produk' memiliki konten yang tidak lengkap. Diharapkan 'ProductName'. Kesalahan terjadi pada file:///C:/MyFolder/ProductWithDTD.xml(4, 3). Dokumen tidak sah

Membuat XDR skema dan link ke dokumen XML

  1. Dalam Visual Studio 2005 atau dalam Visual Studio.NET, titik Baru pada Berkas menu, dan kemudian klik Berkas.
  2. Pilih File teks Ketik, dan kemudian klik Terbuka.
  3. 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">
    
       <AttributeType name="ProductID" dt:type="int"/>
       <ElementType name="ProductName" dt:type="string"/>
    
       <ElementType name="Product" content="eltOnly">
          <attribute type="ProductID" required="yes"/>
          <element type="ProductName"/>
       </ElementType>
    </Schema>
    					
  4. Simpan berkas sebagai Product.XDR dalam folder yang sama sebagai dokumen XML.
  5. Membuka kembali asli Product.xml, dan kemudian link untuk XDR skema, sebagai berikut:
    <?xml version="1.0" encoding="utf-8" ?>
    <Product ProductID="123" xmlns="x-schema:Product.xdr"> 
       <ProductName>Rugby jersey</ProductName>
    </Product>
    					
  6. Simpan dokumen XML diubah sebagaiProductWithXDR.xml.

Melakukan validasi dengan menggunakan skema XDR

  1. Mengubah aplikasi Anda sehingga XmlTextReader beban ProductWithXDR.xml, sebagai berikut:
    Dim r As New XmlTextReader("C:\MyFolder\ProductWithXDR.xml")
    					
  2. Menetapkan ValidationType untuk XDR sehingga pembaca memvalidasi melakukan validasi XDR, sebagai berikut:
    v.ValidationType = ValidationType.XDR
    					
  3. Membangun dan menjalankan aplikasi.

    Aplikasi harus melaporkan bahwa dokumen XML berlaku.
  4. Memodifikasi ProductWithXDR.xml untuk membuat sengaja tidak sah.
  5. Menjalankan aplikasi lagi.

    Aplikasi harus laporan kesalahan validasi.

Membuat skema XSD dan link ke dokumen XML

  1. Dalam Visual Studio.NET, titik Baru pada Berkas menu, dan kemudian klik Berkas.
  2. Pilih File teks Ketik, dan kemudian klik Terbuka.
  3. 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>
    					
  4. Simpan berkas sebagai Product.xsd dalam folder yang sama sebagai dokumen XML.
  5. Membuka kembali asli Product.xml, dan kemudian link untuk XSD skema, sebagai berikut:
    <?xml version="1.0" encoding="utf-8" ?>
    <Product ProductID="123" 
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:noNamespaceSchemaLocation="Product.xsd">
       <ProductName>Rugby jersey</ProductName>
    </Product> 
    					
  6. Simpan dokumen XML diubah sebagaiProductWithXSD.xml.

Melakukan validasi dengan menggunakan skema XSD

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

    Aplikasi harus melaporkan bahwa XML dokumen ini berlaku.

Menggunakan ruang nama dalam skema XSD

  1. Dalam Visual Studio 2005 atau dalam Visual Studio.NET, terbuka ProductWithXSD.xml. Menyatakan default namespace, guci: MyNamespace, dalam dokumen. Mengubah hubungan XSD untuk menentukan XSD skema untuk memvalidasi konten dalam namespace ini, sebagai berikut:
    <?xml version="1.0" encoding="utf-8"?>
    <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>
    					
  2. Simpan ProductWithXSD.xml.
  3. Buka Product.xsd, klik XML tab, dan kemudian memodifikasi xsd:schemamulai tag sebagai berikut, sehingga skema berlaku untuk ruang nama guci: MyNamespace:
    <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
                targetNamespace="urn:MyNamespace"
                elementFormDefault="qualified">
    					
  4. Simpan Product.xsd.
  5. Menjalankan aplikasi untuk memvalidasi dokumen XML dengan menggunakan skema XSD.

Cache namespaces

  1. Dalam Visual Studio 2005 atau dalam Visual Studio.NET, terbuka Module1.vb. Pada awal Utama subrutin, membuat XmlSchemaCollection objek, sebagai berikut:
    Dim cache As 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. Setelah kode yang menciptakan XmlValidatingReader objek, Tambahkan pernyataan berikut. Ini menambah skema cache untuk XmlValidatingReader, sehingga pembaca dapat menggunakan skema dalam memori.
    v.Schemas.Add(cache)
    					

Verifikasi

  1. Membangun dan menjalankan aplikasi.
  2. Memverifikasi bahwa dokumen XML masih sedang divalidasi melawan XSD skema.
  3. Membuat beberapa perubahan untuk ProductWithXSD.xml untuk sengaja membuat tidak sah.
  4. Memverifikasi bahwa aplikasi mendeteksi validasi ini kesalahan.

Properti

ID Artikel: 315533 - Kajian Terakhir: 24 September 2011 - Revisi: 2.0
Berlaku bagi:
  • Microsoft Visual Basic 2005
  • Microsoft Visual Basic .NET 2003 Standard Edition
Kata kunci: 
kbvs2005swept kbvs2005applies kbhowtomaster kbmt KB315533 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:315533

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