使用DTD文档验证XML文档



我是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>,但在浏览器中仍然没有收到任何错误消息。我在这一点上被困。

欢迎来到XML社区。

您需要为XML找到并使用验证解析器;如果您想使用网络浏览器,您可能会感到失望。Internet Explorer的较旧版本默认情况下验证XML针对DTD;较新的版本不会(但我相信,如果您能弄清楚如何,您可以将它们配置为此)。基于Mozilla的浏览器根本没有验证的XML解析器。

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

  • xmllint(libxml2的命令行接口,这是GNOME项目的一部分,但也是gnome之外的可用)

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

  • Xerces J,Xerces C(这些是Apache Projects)

也有XML感知的编辑器,它们从编辑器中提供集成验证(有时是您选择的几个解析器)。

最新更新