欢迎来到天天文库
浏览记录
ID:34659754
大小:573.78 KB
页数:32页
时间:2019-03-08
《asp. 2.0 xml高级编程 (第3版)new》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第5章XML数据验证在前几章中,您已经学习了读取XML文件,以及检查文件是否是格式良好和有效。本章将进入更高级的领域来讲解如何在读取XML数据的时候执行XML数据的验证。本章将讨论使用System.Xml命名空间中的类执行不同类型的XML验证。还将对.NET模式对象模型(.NETSchemaObjectModel)作深入的讨论,并提供示例来说明如何通过程序创建和读取XML模式。本章还将介绍的内容包括:?由.NETFramework2.0提供的XML验证支持?如何使用XmlReaderSettings类结合XmlReader类来验证XML文件?如
2、何利用XmlSchemaSet类将XML模式放入缓存并使用它们来验证XML文件?如何通过XmlNodeReader类来执行XMLDOM验证?如何使用内嵌模式验证XML数据?如何使用DTD验证XML数据?VisualStudio对创建XSD模式的支持?如何通过程序使用XmlSchema读取XSD模式?如何通过程序创建XSD模式?如何通过程序从XML文件推断XSD模式下一节将开始回顾由.NETFramework2.0提供的验证支持。5.1XML验证验证是通过XSD模式或者DTD或XDR模式对XML内容强制执行规则的过程。可以有两种方式来定义XML文
3、档的结构,有时称为词汇表:DTD和XML模式。使用XML模式比起使用DTD来说是一种较新和更加灵活的技术,但是这两种方式都经常使用。DTD或者模式可以嵌入在XML文件中,但是最常见的是包含在一个单独的文件中。XML处理程序称为解析器,可以依据它的DTD或模式对XML文档进行检查以便查看是否符合规则;这个过程就叫做验证。符合DTD或模式中所有规则的XML文件就被称为是有效的文件。XML模式文件一般是一个XML-Data简化(XDR)或者XML模式定义(XSD)语言文件。基于XSD模式的验证是业界接受的标准并且是用于大多数应用程序的主要验证方式。虽
4、然使用DTD的XML数据验证只用于遗留的应用程序,但是本章依旧为您提供示例来说明如ASP.NET2.0XML高级编程(第3版)何使用DTD进行XML验证。5.1.1.NETFramework2.0支持的验证类型在.NETFramework中,可以通过很多方式来执行XML数据的验证。在讨论这些验证类型之前,有必要了解.NETFramework支持的验证机制(DTD、XDR和XSD)之间的主要区别。?DTD——文本文件,其语法直接来自于标准通用标记语言(SGML)——XML的先驱。DTD使用一种定制的、非XML的语法定义了一套有效标签、每个标签可以
5、支持的属性以及标签之间的依赖关系。DTD允许您指定每个标签的子标签、它们的群集、它们的属性以及标签和属性的其他属性。群集指定了每个子元素出现的次数。?XDR——一种模式语言,以Microsoft于1998年向W3C提交的建议为基础(要获得更多信息,请参阅http://www.w3.org/TR/1998/NOTE-XML-data-0105)。XDR非常灵活并且取消了DTD的一些限制。与DTD不同的是,XDR使用了与XML文档相同的语法来描述文档的结构。而且,在DTD中,所有的数据内容都是字符数据。XDR语言模式允许您指定元素或者属性的数据类型
6、。请注意XDR从未达到过建议标准状态。?XSD——定义形成了XML文档的元素和属性。每个元素都是强类型。以W3C建议标准为基础,XSD使用另外一个XML文档来描述XML文档的结构。XSD包括一个由主类型和派生类型组成的包罗万象的类型系统。XSD的类型系统还建立在简单对象访问协议(SOAP)和XMLWeb服务基础之上。如前文所示,XDR是一个早期的混合规范,自从发展成XSD之后就从未达到过W3C建议标准状态。.NET类对XDR的支持大多数是为了向下兼容;但是XDR被基于组件对象模型(ComponentObjectModel,COM)的Micros
7、oftXMLCoreService(MSXML)解析器完全支持。注意:DTD直到几年前还被认为是跨平台的标准。随后W3C官方发布了新的标准,即XSD,从技术上说它远比DTD高级。现在,XSD被几乎所有的平台上的所有解析器支持。虽然对DTD的支持不会在短时间内过时,但是如果您开始迁移至XSD或者建立基于XSD而不是DTD或XDR的XML驱动的新应用程序,那么您将处于一个游刃有余的境地。.NETFramework提供了一个便利的应用工具,名为xsd.exe,它可以自动将XDR模式转换为XSD。如果您传入一个XDR模式文件(一般是.xdr扩展名),那
8、么xsd.exe将XDR模式转换为XSD模式,如下所示:xsd.exeAuthors.xdr输出文件具有和XDR模式相同的名称,但是具有.xsd扩展名
此文档下载收益归作者所有