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
<!--仅验证是否是“格式良好的”-->
分享到:
相关推荐
非常简单实用的XML验证器
XML 验证器.html
xml验证
XML验证器(XSD验证XML)附Delphi7源码 http://blog.csdn.net/akof1314/article/details/6860264 有介绍
XML验证器,验证格式提示错误信息,html + js开发
struts2基于xml验证(最常用的三种类型String、Date、int验证).doc
WEB开发 之 XML 验证.docx
NULL 博文链接:https://fhqiwcw.iteye.com/blog/1696624
为一个自己写的数据抽取JAR包的XML验证的客户端小软件
struts2官方例子7-表单验证 xml形式的验证,主要是在相应的action类旁,新建一个对应的xml文件,进行验证
Atom-feed-validator.zip,基于node.js的简单验证工具,用于rss或atom等提要。支持opensearch.xml验证。基于validator.w3.org/feed饲料验证器,atom是一个用web技术构建的开源文本编辑器。
2、XML验证文档的生成工具 trang.jar 3、利用XSD文件的XML3种验证方法 1)Dom4j的SAXValidator (dom4j.jar, javax.xml.parsers 相关类) 2)Javax.xml.validation API(Java1.5及以上) 3)Jdom(jdom.jar,xerces...
当有大批量xml文件但是里面有极个别xml错误时, 可以使用该工具, 检查某个文件夹下所有xml文件是否正确, 对检查结果进行输出 (只会检查一层文件, 即A文件夹下有xml文件和B文件夹, 则选中A文件夹不会检查B文件夹下的...
独一无二的验证环境,不下你会后悔的
XML ValidatorBuddy通过易于使用的XML验证器支持XSD、DTD和Schematron规则。 在编辑器中直接将XML或JSON转换为HTML,或者对磁盘上的多个文件一次性应用XSL转换。 具有XML相关增强功能的独特Explorer窗口使每个人都...
使用DTD验证XML文档 一、 DTD的定义: a) DTD是Document Type Defintion的缩写,即文档类型定义。DTD用来描述XML文档的结构。 二、 DTD可能包含的内容: a) 元素的定义规则。 b) 元素之间的关系规则。 c) 属性的定义...
NULL 博文链接:https://houjiang2100.iteye.com/blog/974399
革命性的智能修复XML验证自动纠错 XPath的自动完成和XPath分析器窗口 可视化的XML Schema编辑器 数据库集成 SharePoint®服务器的支持 DTD编辑器DTD模式变换 XBRL验证器和图形化的XBRL分类标准编辑器 在MS Office ...
验证XML控件验证XML控件验证XML控件验证XML控件验证XML控件
主要介绍了struts2 validation.xml 验证规则代码解析,具有一定借鉴价值,需要的朋友可以参考下