XmlReaderSettings.DtdProcessing 属性
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
获取或设置一个值,该值确定 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。
示例
以下示例使用 DTD 文件验证 XML 文件。
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 可扩展标记语言 (XML) 1.0 (第四版)建议中定义的有效性约束来实现。 DTD 使用正式语法来描述合规 XML 文档的结构和语法;指定 XML 文档允许的内容和值。
属性 DtdProcessing 可以具有以下值之一:
- DtdProcessing.Parse 以启用 DTD 处理。
- 如果遇到 DTD,则 DtdProcessing.Prohibit 引发 XmlException 异常。
- DtdProcessing.Ignore 禁用 DTD 处理,没有警告或异常。
为针对 DTD 执行验证,XmlReader 使用 XML 文档的 DOCTYPE 声明中所定义的 DTD。 DOCTYPE 声明可以指向内联 DTD,也可以是对外部 DTD 文件的引用。 若要针对 DTD 验证 XML 文件,请执行以下作:
- 将 XmlReaderSettings.DtdProcessing 属性设置为
DtdProcessing.Parse。 - 将 XmlReaderSettings.ValidationType 属性设置为
ValidationType.DTD。 - 如果 DTD 是存储在需要身份验证的网络资源上的外部文件,请将具有所需凭据的对象传递给XmlResolverCreate该方法。
Important
DtdProcessing如果该属性设置为DtdProcessing.Ignore,XmlReader则不会报告 DTD。 这意味着 DTD/DOCTYPE 将在输出时丢失。