现在的位置: 首页 > 综合 > 正文

xml 验证

2013年12月07日 ⁄ 综合 ⁄ 共 1966字 ⁄ 字号 评论关闭

XML 确认


符合语法的XML文档称为结构良好的XML文档。

通过DTD验证的XML文档称为有效的XML文档。


"结构良好的" XML文档

一个结构良好的XML文档应该使用正确的语法。

一个结构良好的XML文档应该遵守XML语法规则,前面一章给出的例子就是一个结构良好的XML文档:

<?xml version="1.0" encoding="ISO-8859-1"?>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note> 


"有效的" XML文档

一个有效的XML文档应该遵守DTD的描述。

一个有效的XML文档也是一个结构良好的XML文档,同时还必须符合DTD的规则。

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE note SYSTEM "InternalNote.dtd">
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note> 


XML DTD

DTD定义了XML文档中可用的合法元素。

DTD的意图在于定义XML文档的合法建筑模块。他通过定义一系列合法的元素决定了XMl文档的内部结构。结构良好的XML文档不一定是有效的XML文档,但有效的XML文档一定是结构良好的XML文档。如果你想了解更多关于DTD的知识可以参考DTD 指南


XML Schema 

XML Schema(XML模式)是基于XML的DTD的替代品。

W3C使得DTD和Schema可以相互替代,读者可以在Schema 指南中了解到更多信息。


错误

XML文档中发生的错误将导致XML程序停止。

 

W3C的XML规范声明:如果程序在处理XML文档中发现一个有效的错误,那么此程序应该终止。这就是XML软件相对于容易编写的原因。所有的XML文档地都应该是协调一致的。

在HTML中,HTML文件可能包含很多错误,(比如一个元素有开始标记没有结束标记)这也是HTML浏览器体积之所以很大的一个原因,当他们发现错误的时候,他们有各自不同的方法来决定此HTML文件应该如何显示。

在XML中决不会发生这种情况。

DTD的意图在于定义XML文档的合法构建模块。他通过定义一系列合法的元素决定了XMl文档的内部结构。结构良好的XML文档不一定是有效的XML文档,但有效的XML文档一定是结构良好的XML文档。 

DTD分为内部文档和外部文档

内部文档:<!DOCTYPE root-element [element-declarations]>

含有内部DTD的XML文档一例

<?xml version="1.0"?>

<!DOCTYPE note[

<!ELEMENT note (to,from,heading,body)>

<!ELEMENT to (#PCDATA)>

<!ELEMENT from (#PCDATA)>

<!ELEMENT heading (#PCDATA)>

<!ELEMENT body (#PCDATA)>

]>

<note>

<to>Tove</to>

<from>Jani</from>

<heading>Reminder</heading>

<body>Dont't forget me this weekend</body>

</note>

 !DOCTYPE note 定义文档的根元素为note

!ELEMENT note定义note元素包含4个元素:to,from,heading,body

!ELEMENT  to 定义类型为"#PCDATA"的to元素

。。。

外部DTD声明:<!DOCTYPE root-element SYSTEM "filename">

<?xml version="1.0" ?>

<!DOCTYPE note SYSTEM "note.dtd">

<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>

note.dtd

<!ELEMENT note (to,from,heading,body)>
<!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT heading (#PCDATA)>
<!ELEMENT body (#PCDATA)>
为什么用DTD?
XML文档可以存储固定格式的数据
不同的开发组可以按一定格式交换数据
应用程序可以验证来自外部的文档是否有效
当然也可以验证自己的文档

 

抱歉!评论已关闭.