DTD到底有什么作用啊,高手指点

alwaystar 2003-03-08 10:12:27
下面DTD定义中没有定义price元素,为什么在显示的时候不提示错误呢?
DTD在什么情况下起作用啊
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE publications [
<!ELEMENT publications (book+)>
<!ELEMENT book (title, author)>
<!ELEMENT title (#PCDATA)>
<!ELEMENT author (#PCDATA)>
]>
<publications>
<book>
<title>Mastering XHTML</title>
<author>Ed Tittel</author>
<price/>
</book>
</publications>
...全文
130 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
wanghr100 2003-03-09
  • 打赏
  • 举报
回复
DTD 是用来定义各种文件中XML标记的使用规范.

XML 文档如果使用一个 DTD 并符合 DTD 中的规则将被称为有效文档(valid document)。符合基本标记规则的 XML 文档被称为格式正确文档(well-formed document)。XML 规范要求所有的解析器当其发现一个文档不是格式正确时要报错。验证(Validation)则是另一个问题了。验证解析器(Validating parser)在解析 XML 文档同时进行验证。非验证解析器(Non-validating parser) 忽略所有的验证错误。换而言之,如果一个 XML 文档是格式正确的时,一个非验证解析器并不关注文档是否符合其对应 DTD 所指定的规则(如果有的话)。
而,楼主的XML格式是正确的,所以没有报错啊.

如果用一个DOM解析器,来解析一个 XML 文档时,DOM 提供了不同的功能来检查文档的内容和结构。 就会报错.
vcvj 2003-03-08
  • 打赏
  • 举报
回复
在真正编程DOM的时候会默认打开验证你会清楚有用的
IE默认不打开DTD验证

你可用xmlint工具去测试,或自己编写一段javascript去测试(打开验证)

要分再说

8,906

社区成员

发帖
与我相关
我的任务
社区描述
XML/XSL相关问题讨论专区
社区管理员
  • XML/XSL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧