XmlReaderSettings.DtdProcessing Properti
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Mendapatkan atau menetapkan nilai yang menentukan pemrosesan DTD.
public:
property System::Xml::DtdProcessing DtdProcessing { System::Xml::DtdProcessing get(); void set(System::Xml::DtdProcessing value); };
public System.Xml.DtdProcessing DtdProcessing { get; set; }
member this.DtdProcessing : System.Xml.DtdProcessing with get, set
Public Property DtdProcessing As DtdProcessing
Nilai Properti
Salah satu nilai enumerasi yang menentukan pemrosesan DTD. Defaultnya adalah Prohibit.
Contoh
Contoh berikut memvalidasi file XML menggunakan file DTD.
using System;
using System.Xml;
using System.Xml.Schema;
using System.IO;
public class Sample {
public static void Main() {
// Set the validation settings.
XmlReaderSettings settings = new XmlReaderSettings();
settings.DtdProcessing = DtdProcessing.Parse;
settings.ValidationType = ValidationType.DTD;
settings.ValidationEventHandler += new ValidationEventHandler (ValidationCallBack);
// Create the XmlReader object.
XmlReader reader = XmlReader.Create("itemDTD.xml", settings);
// Parse the file.
while (reader.Read());
}
// Display any validation errors.
private static void ValidationCallBack(object sender, ValidationEventArgs e) {
Console.WriteLine("Validation Error: {0}", e.Message);
}
}
Imports System.Xml
Imports System.Xml.Schema
Imports System.IO
public class Sample
public shared sub Main()
' Set the validation settings.
Dim settings as XmlReaderSettings = new XmlReaderSettings()
settings.DtdProcessing = DtdProcessing.Parse
settings.ValidationType = ValidationType.DTD
AddHandler settings.ValidationEventHandler, AddressOf ValidationCallBack
' Create the XmlReader object.
Dim reader as XmlReader = XmlReader.Create("itemDTD.xml", settings)
' Parse the file.
while reader.Read()
end while
end sub
' Display any validation errors.
private shared sub ValidationCallBack(sender as object, e as ValidationEventArgs)
Console.WriteLine("Validation Error: {0}", e.Message)
end sub
end class
Contohnya menggunakan itemDTD.xml file sebagai input.
<!--XML file using a DTD-->
<!DOCTYPE store [
<!ELEMENT store (item)*>
<!ELEMENT item (name,dept,price)>
<!ATTLIST item type CDATA #REQUIRED>
<!ELEMENT name (#PCDATA)>
<!ELEMENT price (#PCDATA)>]>
<store>
<item type="supplies" ISBN="2-3631-4">
<name>paint</name>
<price>16.95</price>
</item>
</store>
Keterangan
Validasi definisi jenis dokumen (DTD) diimplementasikan dengan menggunakan batasan validitas yang ditentukan dalam rekomendasi W3C Extensible Markup Language (XML) 1.0 (edisi keempat). DTD menggunakan tata bahasa formal untuk menggambarkan struktur dan sintaks dokumen XML yang sesuai; mereka menentukan konten dan nilai yang diizinkan untuk dokumen XML.
Properti DtdProcessing dapat memiliki salah satu nilai berikut:
- DtdProcessing.Parse untuk mengaktifkan pemrosesan DTD.
- DtdProcessing.Prohibit untuk memunculkan XmlException pengecualian ketika DTD ditemui.
- DtdProcessing.Ignore untuk menonaktifkan pemrosesan DTD tanpa peringatan atau pengecualian.
Untuk melakukan validasi terhadap DTD, XmlReader menggunakan DTD yang ditentukan dalam deklarasi DOCTYPE dari dokumen XML. Deklarasi DOCTYPE dapat menunjuk ke DTD sebaris atau dapat menjadi referensi ke file DTD eksternal. Untuk memvalidasi file XML terhadap DTD:
- Atur properti XmlReaderSettings.DtdProcessing ke
DtdProcessing.Parse. - Atur properti XmlReaderSettings.ValidationType ke
ValidationType.DTD. - Jika DTD adalah file eksternal yang disimpan pada sumber daya jaringan yang memerlukan autentikasi, teruskan objek dengan kredensial yang diperlukan XmlResolver ke metode Create.
Important
Jika properti DtdProcessing disetel ke DtdProcessing.Ignore, maka XmlReader tidak akan melaporkan DTD. Ini berarti bahwa DTD/DOCTYPE akan hilang pada output.