XmlReaderSettings.DtdProcessing Eigenschaft

Definition

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:

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.

Gilt für: