`
wind_bell
  • 浏览: 286338 次
  • 性别: Icon_minigender_2
  • 来自: 广州
社区版块
存档分类
最新评论
阅读更多
XML文档必须严格遵守语法规范,即都必须是“格式良好的”。同时,XML文档还应当符合语义方面的规范,即是“有效的”。对XML文档有效性的检查称为对XML的“验证”(Validation)。

“格式良好的”是对XML文档最基本的要求。凡是“格式良好的”XML文档都可以被XML解析器解析,进而生成对象树,以便接受进一步的处理。而且“有效的” XML必定是“格式良好的”。在此基础上,还要遵守DTD或XML Schema的语法规定,只有这样才能保证XML文档的易读性,同时还能充分地体现数据信息之间的关系,从而更好地描述数据。

DTD可以定义XML文档的词汇和语法。利用正则表达式,DTD除了可以说明XML文件中哪些元素是必需的、哪些是可选的、元素所能包含的属性等元素本身信息外,还可以描绘元素之间的结构信息。比如,某个元素可以嵌套哪些子元素、子元素的个数以及出现次序、是否可选等等。

典型的DTD格式如下: ww.w3 sk y.com

● 以DOCTYPE声明为起始标志,告诉解析器以下内容属于DTD;

● 位于DOCTYPE后的DTD名称,必须与XML文档中的根元素完全一致,后面再跟着一个“[”号,接下来才是DTD正文。

DTD有两种使用方式: 内嵌式(如例4)和引用式(如例5)。它们在XML文档中的位置都必须位于根元素出现之前。

例4:

<?xml version=“1.0”?>

<!DOCTYPE employees [

……ELEMENT and ATTLIST definitions……

]>

<employees>

……XML data……

</employees>

例5:

<?xml version=“1.0”?>

<!DOCTYPE employees SYSTEM “Employees.dtd”>

<employees>

……XML data……

</employees>

目前,DTD是W3C推荐的验证XML文档有效性的唯一正式规范,但它也有着许多不足:

● DTD过于复杂,要熟悉它的语法、标记集合需要一定的时间和精力,而且DTD采用的是非XML语法规则,不能用XML工具进行操作处理;

● DTD对数据类型定义支持不够,所定义的数据类型有限,并且都是针对属性而设立,无法满足电子商务等Web应用所需要的丰富数据类型;

● 扩展机制复杂,也很脆弱,最大的弊病在于不能表达元素之间的相互关系;

● DTD不支持名称空间的机制。

以上种种缺陷,促使W3C组织致力于寻求一种新的机制来取代DTD。在众多的标准之中, Microsoft公司为主提出的XML Schema较为引人注目。它具有完全符合XML语法、丰富的数据类型、良好的可扩展性以及易被DOM等XML解析器处理等优点。

最后介绍一个用于XML验证的小工具:xmlint.exe。它可以用来验证XML文档是“格式良好的”以及“有效的”,用法如下:

xmlint c:\my_xml\*.xml

<!--验证所有XML文档是否是“有效的”-->

xmlint -w c:\my_xml\*.xml

<!--仅验证是否是“格式良好的”-->

分享到:
评论
1 楼 lliiqiang 2014-09-23  
关键在于业务也正确,数据格式只是一种声明协议

相关推荐

Global site tag (gtag.js) - Google Analytics