xml - 使用 dtd 文档验证 xml 文档

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

最佳答案

欢迎来到 XML 社区。

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

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

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

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

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

还有支持 XML 的编辑器,它们在编辑器内提供集成验证(有时通过您选择的多个解析器)。

关于xml - 使用 dtd 文档验证 xml 文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14014307/

相关文章:

sql-server - SQL 中的 XML 帮助

xml - Swift - 无法将类型 'AEWebServices.Type' 的值分配给类型 'NSXMLParserDelegate?' 的值

xml - 文档类型声明包含或指向的标记声明必须格式正确

java - W3C 通过从网站中删除模块来破坏 XHTML 1.1 解析

Java:使用 Java 处理 XML 文档时如何在 XML 文档中使用 DTD?

java - 如何使用Java程序为段落添加标签并动态生成ID?

xml - 如何创建/运行 XML 文件

c# - 如何防止 .NET XML 解析器扩展 XML 中的参数实体?

单元测试报告的 XML 格式规范(DTD、XSD..)

android - 属性缺少 android 命名空间前缀