【问题标题】:Validation of an xml document using a dtd document使用 dtd 文档验证 xml 文档
【发布时间】:2012-12-23 20:06:16
【问题描述】:

我是 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 数据。有一个元素名称&lt;form&gt;。我刚刚将&lt;form&gt; 的拼写更改为&lt;rom&gt;,但在我的浏览器中仍然没有收到任何错误消息。我被困在这一点上。

【问题讨论】:

  • 我认为大多数浏览器并不是为了验证 XML,而是为了尽可能好地呈现标记。我建议使用外部工具进行验证。例如,我刚刚发现xmlvalidation.com 派上用场。
  • 如果有人想以 XML 的形式发送和接收数据,那么最好的方法是什么。如何使用 DTD 验证数据
  • 我不知道您所说的发送/接收到底是什么意思,但显然您需要根据服务器端的 DTD 验证 XML 文件(如果涉及服务器)。下面是一个使用 Java 的 XML 验证示例:XML Validation.
  • DTD 没有像以前那样频繁使用。大多数情况下,我们使用 XML Schema (XSD) 来验证 XML。

标签: xml dtd


【解决方案1】:

欢迎来到 XML 社区。​​p>

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

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

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

  • rxp(由爱丁堡大学的 Richard Tobin 撰写)

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

还有可识别 XML 的编辑器,可在编辑器内提供集成验证(有时来自您选择的多个解析器)。

【讨论】:

  • @Sperberg 如果您能提到哪些支持 XML 的编辑器提供集成验证,那就太好了。
猜你喜欢
  • 2019-10-25
  • 2013-06-15
  • 2010-12-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多