`
pengcqu
  • 浏览: 771653 次
  • 性别: Icon_minigender_1
  • 来自: 未来
社区版块
存档分类
最新评论

XML的两种模式描述

阅读更多

在XML使用过程中,往往需要对XML的有效性进行验证。

 

只要不违反XML格式良好的规则,就可以自由选取标记的名字,用自己习惯的方式描述事物。这就意味着用XML描述相同的事物时,不同的编写者可能写出含有不同标记名、采用不同结构的XML文档,这对于数据的统一处理极为不利。所以需要一种机制指定应该如何构造描述同一事物的文档。DTD和XML Schema就是使用最为广泛的用来进行XML文档有效性验证的两种机制[16]17]。

DTD(Document Type Definition,文档类型定义)是一套关于标记符的语法规则,详细描述一组XML文档的结构,最初是为SGML开发的,它可以是XML文档的一部分,但是它通常是一份单独的文档或者一系列文档。DTD说明在文档中可以使用哪些标记,哪些标记可以出现在其它标记中,哪些标记具有属性,使用的标记应按什么顺序出现等。XML本身并没有一个通用的DTD,想使用XML进行数据交换的行业或组织可以自行定义它们自己的DTD,DTD规定了一个语法分析器用于解释一个“有效的”XML文档所需要知识的所有规则的细节。一个DTD可以是内部的,包含在一个“格式良好”的XML文档中,也可以是外部的,作为一个外部文档被引用。DTD标记声明可以是元素类型声明,属性声明,实体声明,或符号声明。作为XML1.0规范的重要组成部分,DTD对于XML文档的结构起到很好的描述作用,是近几年来XML技术领域所使用的最广泛的一种用于XML文档有效性验证的机制。

随着XML技术的广泛使用,DTD也逐渐显出其自身的一些不足与缺点,比如采用了非XML的语法规则,不支持多种多样的数据类型,扩展性较差,不支持名称空间等等。于是,W3C于2001年5月正式推荐XML Schema作为XML的标准模式。XML Schema本身就是一个符合XML语法结构的XML文档,可以用通用的XML解析器进行解析。它如同DTD一样,负责定义和描述XML文档的结构和内容模式。XML Schema可以定义XML文档中存在哪些元素和元素之间的关系,并且可以定义元素和属性的数据类型。


与DTD相比,XML Schema具有以下一些优点:
①一致性。Schema本身就是XML文档,使得对XML的定义不必再利用一种特定的形式化语言,而是直接借助XML自身的特性,使得XML达到从内到外的完美统一。
②扩展性。Schema对DTD进行了扩充,从而使其具有较强的可扩展性,比如引入了数据类型、命名空间等。
③互换性。用户可以根据需要设计适合自己应用的Schema,并且可以同其他人交换彼此的Schema。通过映射机制,可以将不同的Schema进行转换,实现更高层次的数据交换。
④规范性。同DTD一样,Schema也提供了一套完整的机制以约束XML文档中标记的使用,相比之下,Schema更具规范化,它定义了XML文档的整体结构,元素间的关系等。


总的来说,不能简单的评价DTD与XML Schema哪一个绝对好。它们各有各自的应用场合。相对于DTD,XML Schema可应用的范围更广一些。

分享到:
评论
1 楼 xici_magic 2009-10-18  
无疑  在开发中 Schema用的更多一些

相关推荐

    XML高级编程pdf

    4.2.1 XML的两种角色 4.2.2 将信息模型映射到XML 4.3 模式语言和表示法 4.3.1 模式的作用 4.3.2 将DTD作为模式 4.3.3 XML模式建议 4.4 小结 第5章 文档对象模型 5.1 什么是文档对象模型 5.1.1 XML文档结构 ...

    XML 高级编程(高清版)

    4.2.1 XML的两种角色 4.2.2 将信息模型映射到XML 4.3 模式语言和表示法 4.3.1 模式的作用 4.3.2 将DTD作为模式 4.3.3 XML模式建议 4.4 小结 第5章 文档对象模型 5.1 什么是文档对象模型 5.1.1 XML文档结构 ...

    Tinyxml 源代码(VC6 & VS2005)

    TinyXML一开始就两种方式都支持。调用TiXmlBase::SetCondenseWhiteSpace( bool )来设置你想要的结果,默认是压缩掉多余的空格。 如果想要改变默认行为,你应该在解析任何XML数据之前调用TiXmlBase::...

    XML高级编程 (Extensible Markup Language)

    4.2.1 XML的两种角色 4.2.2 将信息模型映射到XML 4.3 模式语言和表示法 4.3.1 模式的作用 4.3.2 将DTD作为模式 4.3.3 XML模式建议 4.4 小结 第5章 文档对象模型 5.1 什么是文档对象模型 5.1.1 XML文档结构 ...

    XML高级编程

    4.2.1 XML的两种角色 90 4.2.2 将信息模型映射到XML 93 4.3 模式语言和表示法 101 4.3.1 模式的作用 101 4.3.2 将DTD作为模式 103 4.3.3 XML模式建议 109 4.4 小结 110 第5章 文档对象模型 111 5.1 什么是文档对象...

    XML - 报表数据的新大陆.rar

    大家知道,处理XML文档有两种模式,一个是DOM方式,另一个是流模式。DOM方式处理方便,但速度慢耗内存,流模式处理速度快,省内存但使用不方便。对于.NET平台,使用System.Xml.XmlDocument对象来使用DOM方式处理XML...

    java餐饮系统源码-event-logging-schema:事件日志是一种XML模式,用于描述由计算机系统、硬件设备和访问控制系统生成的可

    模式,用于描述由计算机系统、硬件设备和访问控制系统生成的可审计事件。 它旨在充当通用标准,可以使用诸如 . 该模式的目的是将日志数据规范化为一种通用形式,这意味着分析人员不需要理解具有自己独特功能的多种...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part2

    第14章 jsp开发的两种模型 441 14.1 模型1 441 14.2 模型2 445 14.3 小结 449 第15章 标签库(tag library) 450 15.1 标签库api 450 15.1.1 标签的形式 451 15.1.2 tag接口 451 15.1.3 iterationtag接口 ...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part3

    第14章 jsp开发的两种模型 441 14.1 模型1 441 14.2 模型2 445 14.3 小结 449 第15章 标签库(tag library) 450 15.1 标签库api 450 15.1.1 标签的形式 451 15.1.2 tag接口 451 15.1.3 iterationtag接口 ...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part4

    第14章 jsp开发的两种模型 441 14.1 模型1 441 14.2 模型2 445 14.3 小结 449 第15章 标签库(tag library) 450 15.1 标签库api 450 15.1.1 标签的形式 451 15.1.2 tag接口 451 15.1.3 iterationtag接口 ...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part5

    第14章 jsp开发的两种模型 441 14.1 模型1 441 14.2 模型2 445 14.3 小结 449 第15章 标签库(tag library) 450 15.1 标签库api 450 15.1.1 标签的形式 451 15.1.2 tag接口 451 15.1.3 iterationtag接口 ...

    论文研究-基于二阶统计量的近场源四维参数联合估计.pdf

    根据概率数据的描述形式对概率数据分为基于关系的概率数据模型和基于XML的概率数据模型两类。...设计了映射为关系的概率XML数据的与PDTD无关的PXRel和PXParent两种存储模式,并通过实验验证了其有效性。

    基于DCT算法的水印嵌入和提取的移动智能终端数字图像证据系统Android APP源码(水印包括二维码和图片两种).zip

    基于DCT算法的水印嵌入和提取的移动智能终端数字图像证据系统Android APP源码(水印载体形式包括二维码和图片两种,在简易模式下,水印信息仅包括IMEI;水印信息包括地点、时间、IMEI、Android ID).zip # ...

    web下的listview控件

    例如刚才说的toolbar,假如入我们有三种风格:winxp蓝色、winxp银色和windows经典,前面两种基本差不多,只是样式和图片不一样,而后面一种和前面的两种差别比较大。那么我们需要写两个xsl,三个css文件,三个图片...

    docx-tidy:PHP库可整理DOCX XML文件

    DocxTidy支持两种整理模式: DOCX文件(包括对包含的XML文件的解压缩和重新存档) XML字符串 请注意 通过合并分段标签,DocxTidy删除版本控制/编辑历史记录信息 使用默认设置运行时,DocxTidy会删除拼写检查标记...

    一种基于XML的统一构件匹配技术 (2007年)

    本文提出一个XML统一构件描述模型,该模型利用XML模式对构件进行层次化的组织,采用一种最大权匹配算法,从语法和语义两方面计算两个构件间的匹配度,有效地解决了上述问题。通过实验证明,该技术在保证构件查全率

Global site tag (gtag.js) - Google Analytics