XmlReaderSettings.DtdProcessing Свойство

Определение

Возвращает или задает значение, определяющее обработку DTD.

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

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

Одно из значений перечисления, определяющее обработку DTD. Значение по умолчанию — Prohibit.

Примеры

В следующем примере проверяется XML-файл с помощью DTD-файла.

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 в качестве входных данных.

<!--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 Extensible Markup Language (XML) 1.0 (четвертый выпуск). DTDs используют официальную грамматику для описания структуры и синтаксиса совместимых XML-документов; они указывают содержимое и значения, разрешенные для XML-документа.

Свойство DtdProcessing может иметь одно из следующих значений:

Чтобы выполнить проверку по DTD, XmlReader использует DTD, который определён в объявлении DOCTYPE XML-документа. Объявление DOCTYPE может указывать на встроенный DTD или быть ссылкой на внешний DTD-файл. Чтобы проверить XML-файл на основе DTD, выполните приведенные далее действия.

  • Задайте для свойства XmlReaderSettings.DtdProcessing значение DtdProcessing.Parse.
  • Задайте для свойства XmlReaderSettings.ValidationType значение ValidationType.DTD.
  • Если DTD является внешним файлом, хранящимся в сетевом ресурсе, требующим проверки подлинности, передайте XmlResolver объект с необходимыми учетными данными в Create метод.

Important

Если для свойства DtdProcessing задано значение DtdProcessing.Ignore, XmlReader не будет сообщать о DTD. Это означает, что DTD/DOCTYPE будет отсутствовать в результатах вывода.

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