使用 XmlReader 进行 DTD 验证

http://msdn.microsoft.com/zh-cn/developercenters/z2adhb2f.aspx

.NET Framework 开发人员指南

使用 XmlReader 进行 DTD 验证

更新:November 2007

 

文档类型定义 (DTD) 验证使用在万维网联合会 (W3C) 可扩展标记语言 (XML) 1.0 建议中定义的有效性约束来实现。 DTD 使用形式语法来描述符合标准的 XML 文档的结构和语法;它们指定 XML 文档所允许的内容和值。

 

为针对 DTD 执行验证,XmlReader 使用 XML 文档的 DOCTYPE 声明中所定义的 DTD DOCTYPE 声明既可以指向内联 DTD,也可以是对外部 DTD 文件的引用。

 

XmlReaderSettings..::.ProhibitDtd 属性设置为 false

 

XmlReaderSettings..::.ValidationType 属性设置为 ValidationType.DTD

 

如果 DTD 是存储在要求进行身份验证的网络资源上的外部文件,请将具有必要凭据的 XmlResolver 对象传递给 Create 方法。

 

 示例

C#
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.ProhibitDtd = false;
    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);
  }
}

输入

示例使用 itemDTD.xml 文件作为输入。

<!--XML file using a DTD--&gt
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>paintname> <price>16.95price> item> store> 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/12476590/viewspace-504263/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/12476590/viewspace-504263/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值