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 может иметь одно из следующих значений:
- DtdProcessing.Parse для включения обработки DTD.
- DtdProcessing.Prohibit чтобы выбрасывать XmlException исключение при обнаружении DTD.
- DtdProcessing.Ignore чтобы отключить обработку DTD без предупреждений или исключений.
Чтобы выполнить проверку по 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 будет отсутствовать в результатах вывода.