XmlReaderSettings.DtdProcessing Özellik
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
DTD'lerin işlenmesini belirleyen bir değer alır veya ayarlar.
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
Özellik Değeri
DTD'lerin işlenmesini belirleyen numaralandırma değerlerinden biri. Varsayılan değer: Prohibit.
Örnekler
Aşağıdaki örnek, DTD dosyası kullanarak xml dosyasını doğrular.
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
Örnek, girdi olarak dosyasını kullanır itemDTD.xml .
<!--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>
Açıklamalar
Belge türü tanımı (DTD) doğrulaması, W3C Genişletilebilir Biçimlendirme Dili (XML) 1.0 (dördüncü sürüm) önerisinde tanımlanan geçerlilik kısıtlamaları kullanılarak uygulanır. DTD'ler, uyumlu XML belgelerinin yapısını ve söz dizimini açıklamak için resmi bir dil bilgisi kullanır; XML belgesi için izin verilen içeriği ve değerleri belirtir.
DtdProcessing özelliği aşağıdaki değerlerden birine sahip olabilir:
- DtdProcessing.Parse DTD işlemeyi etkinleştirmek için.
- DtdProcessing.Prohibit bir DTD ile karşılaşıldığında bir XmlException özel durum oluşturmak için.
- DtdProcessing.Ignore DTD işlemeyi uyarı veya özel durum olmadan devre dışı bırakmak için.
DTD'ye karşı doğrulama gerçekleştirmek için, XmlReader xml belgesinin DOCTYPE bildiriminde tanımlanan DTD'yi kullanır. DOCTYPE bildirimi satır içi bir DTD'ye işaret edebilir veya bir dış DTD dosyasına başvuru olabilir. DTD'ye karşı XML dosyasını doğrulamak için:
-
XmlReaderSettings.DtdProcessing özelliğini
DtdProcessing.Parseolarak ayarlayın. -
XmlReaderSettings.ValidationType özelliğini
ValidationType.DTDolarak ayarlayın. - DTD, kimlik doğrulaması gerektiren bir ağ kaynağında depolanan bir dış dosya ise, gerekli kimlik bilgilerine sahip bir XmlResolver nesnesini Create yöntemine geçirin.
Important
Eğer DtdProcessing özelliği DtdProcessing.Ignore olarak ayarlanırsa, XmlReader DTD'leri raporlamaz. Bu, DTD/DOCTYPE'ın çıkışta kaybolacağı anlamına gelir.