XmlReaderSettings.DtdProcessing Eigenschaft
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Dient zum Abrufen oder Festlegen eines Werts, der die Verarbeitung von DTDs bestimmt.
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
Eigenschaftswert
Einer der Enumerationswerte, die die Verarbeitung von DTDs bestimmt. Der Standardwert lautet Prohibit.
Beispiele
Im folgenden Beispiel wird eine XML-Datei mithilfe einer DTD-Datei überprüft.
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
Im Beispiel wird die itemDTD.xml Datei als Eingabe verwendet.
<!--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>
Hinweise
Die Überprüfung der Dokumenttypdefinition (DTD) wird mithilfe der Gültigkeitseinschränkungen implementiert, die in der Empfehlung W3C Extensible Markup Language (XML) 1.0 (vierte Edition) definiert sind. DTDs verwenden eine formale Grammatik, um die Struktur und Syntax kompatibler XML-Dokumente zu beschreiben; sie geben den für das XML-Dokument zulässigen Inhalt und Werte an.
Die DtdProcessing -Eigenschaft kann einen der folgenden Werte aufweisen:
- DtdProcessing.Parse um die DTD-Verarbeitung zu aktivieren.
- DtdProcessing.Prohibit um eine Ausnahme auszuwerfen, wenn eine XmlException DTD gefunden wird.
- DtdProcessing.Ignore um die DTD-Verarbeitung ohne Warnungen oder Ausnahmen zu deaktivieren.
Um eine Überprüfung gegen eine DTD durchzuführen, verwendet XmlReader die in der DOCTYPE-Deklaration eines XML-Dokuments definierte DTD. Die DOCTYPE-Deklaration kann entweder auf eine Inline-DTD verweisen oder ein Verweis auf eine externe DTD-Datei sein. So überprüfen Sie eine XML-Datei für eine DTD:
- Setzen Sie die XmlReaderSettings.DtdProcessing-Eigenschaft auf
DtdProcessing.Parse. - Setzen Sie die XmlReaderSettings.ValidationType-Eigenschaft auf
ValidationType.DTD. - Wenn es sich bei der DTD um eine externe Datei handelt, die in einer Netzwerkressource gespeichert ist, die eine Authentifizierung erfordert, übergeben Sie ein XmlResolver Objekt mit den erforderlichen Anmeldeinformationen an die Create Methode.
Important
Wenn die DtdProcessing-Eigenschaft auf DtdProcessing.Ignore festgelegt ist, werden die DTDs von XmlReader nicht gemeldet. Dies bedeutet, dass die DTD/DOCTYPE bei der Ausgabe verloren geht.