使用dtd文档验证xml文档

时间:2012-12-23 20:06:16

标签: xml dtd

我是XML的新手。我很困惑DTD文档如何验证XML文档。以下是我的代码,如果我错了,请纠正我。

<?xml version="1.0" encoding="iso-8859-1"?>

<!DOCTYPE note  
[
<!ELEMENT note (to,from,heading,body)>
<!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT heading (#PCDATA)>
<!ELEMENT body (#PCDATA)>
]>

<note>
<to>Tove</to>

<rom>Jani</rom> // Here i've miss-spelled the tag <from> but still not getting error

<heading>Reminder</heading>
<body>Don't forget me this weekend!</body> 
</note>

我知道DTD用于验证XML数据。元素名称为<form>。我刚刚将<form>的拼写更改为<rom>,但仍未在浏览器中收到任何错误消息。我在这一点上陷入困​​境。

1 个答案:

答案 0 :(得分:2)

欢迎使用XML社区。

您需要为XML找到并使用验证解析器;如果您想使用Web浏览器,您可能会感到失望。早期版本的Internet Explorer默认根据DTD验证XML;较新的版本没有(但我相信你可以配置他们这样做,如果你能弄清楚如何)。基于Mozilla的浏览器根本没有验证XML解析器。

大多数使用XML的人最终都会使用特定于XML的工具进行验证。我最喜欢的命令行验证是

  • xmllint(libxml2的命令行界面,它是Gnome项目的一部分,但也可以在Gnome之外使用)

  • rxp(爱丁堡大学的理查德托宾)

  • Xerces J,Xerces C(这些是Apache项目)

还有一些支持XML的编辑器可以在编辑器中提供集成验证(有时可以从您选择的几个解析器中进行验证)。