XmlReaderSettings.DtdProcessing プロパティ


DTD の処理を決定する値を取得または設定します。Gets or sets a value that determines the processing of DTDs.

 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



DTD の処理を決定する列挙値の 1 つ。One of the enumeration values that determines the processing of DTDs. 既定値は、Prohibit です。The default is Prohibit.

DTD ファイルを使用して XML ファイルの検証を行う例を次に示します。The following example validates an XML file using a DTD file.

#using <System.Xml.dll>

using namespace System;
using namespace System::Xml;
using namespace System::Xml::Schema;
using namespace System::IO;

// Display any validation errors.
static void ValidationCallBack( Object^ /*sender*/, ValidationEventArgs^ e )
   Console::WriteLine( L"Validation Error: {0}", e->Message );

int main()
   // Set the validation settings.
   XmlReaderSettings^ settings = gcnew XmlReaderSettings;
   settings->DtdProcessing = DtdProcessing::Parse;
   settings->ValidationType = ValidationType::DTD;
   settings->ValidationEventHandler += gcnew ValidationEventHandler( ValidationCallBack );

   // Create the XmlReader object.
   XmlReader^ reader = XmlReader::Create( L"itemDTD.xml", settings );

   // Parse the file. 
   while ( reader->Read() )

   return 1;
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


この例は、itemDTD.xml ファイルを入力として使用します。The example uses the itemDTD.xml file as input.

<!--XML file using a DTD-->
<!DOCTYPE store [
  <!ELEMENT store (item)*> 
  <!ELEMENT item (name,dept,price)>
  <!ELEMENT name (#PCDATA)>
  <!ELEMENT price (#PCDATA)>]>
  <item type="supplies"  ISBN="2-3631-4">


ドキュメント型定義 (DTD) の検証は、W3C 拡張マークアップ言語 (XML) 1.0 (第4版) 勧告で定義されている有効性制約を使用して実装されます。Document type definition (DTD) validation is implemented by using the validity constraints defined in the W3C Extensible Markup Language (XML) 1.0 (fourth edition) recommendation. Dtd は、正式な文法を使用して、準拠する XML ドキュメントの構造と構文を記述します。これらは、XML ドキュメントに使用できるコンテンツと値を指定します。DTDs use a formal grammar to describe the structure and syntax of compliant XML documents; they specify the content and values allowed for the XML document.

このプロパティの値は、次のいずれか 1 つです。This property can have one of the following values:

DTD を基準として検証を実行する場合、XmlReader は、XML ドキュメントの DOCTYPE 宣言で定義されている DTD を使用します。To perform validation against a DTD, the XmlReader uses the DTD defined in the DOCTYPE declaration of an XML document. DOCTYPE 宣言では、インラインの DTD を指定するか、または外部 DTD ファイルへの参照を指定できます。The DOCTYPE declaration can either point to an inline DTD or can be a reference to an external DTD file. DTD に対して XML ファイルを検証するには、次のようにします。To validate an XML file against a DTD:


プロパティがに設定されている場合、は DtdProcessing DtdProcessing.Ignore dtd を報告し XmlReader ません。If the DtdProcessing property is set to DtdProcessing.Ignore, the XmlReader will not report the DTDs. これは、DTD/DOCTYPE が出力時に失われることを意味します。This means that the DTD/DOCTYPE will be lost on output.