XmlReaderSettings.DtdProcessing Свойство

Определение

Получает или задает значение, определяющее обработку определений DTD.Gets or sets a value that determines the processing of DTDs.

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

Значение свойства

DtdProcessing

Одно из значений перечисления, определяющее обработку определений DTD.One of the enumeration values that determines the processing of DTDs. Значение по умолчанию — Prohibit.The default is Prohibit.

Примеры

В следующем примере XML-файл проверяется c использованием DTD-файла.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

Входные данныеInput

В примере в качестве входных данных используется файл 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)>
  <!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>

Комментарии

Проверка DTD реализуется с использованием ограничений на допустимость, определенных в рекомендациях консорциума W3C язык XML (XML) 1,0 (Четвертый выпуск).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.

Это свойство может принимать одно из следующих значений:This property can have one of the following values:

Для выполнения проверки по DTD объект XmlReader использует DTD, определенный в декларации DOCTYPE XML-документа.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. Чтобы проверить XML-файл по DTD, выполните следующие действия.To validate an XML file against a DTD:

  • Задайте свойству XmlReaderSettings.DtdProcessing значение DtdProcessing.Parse.Set the XmlReaderSettings.DtdProcessing property to DtdProcessing.Parse.

  • Задайте для свойства XmlReaderSettings.ValidationType значение ValidationType.DTD.Set the XmlReaderSettings.ValidationType property to ValidationType.DTD.

  • Если DTD является внешним файлом, хранящимся на сетевом ресурсе, для которого требуется проверка подлинности, передайте объект XmlResolver с необходимыми учетными данными методу Create.If the DTD is an external file stored on a network resource that requires authentication, pass an XmlResolver object with the necessary credentials to the Create method.

Важно!

Если DtdProcessing свойство имеет значение DtdProcessing.Ignore , то XmlReader не будет сообщать об DTD.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.

Применяется к