如果我们说DTD是可以满足的,如果有一个对DTD有效的文件,是否有任何DTD不满足的例子?
答案 0 :(得分:1)
有趣的问题(尽管OP最初的麻烦找到了好话)。
答案是:是的,有些DTD没有有效的实例。以下是一些例子。
(1)此DTD没有有限实例:元素类型e
的每个实例都需要另一个元素类型为e
的实例。
<!ELEMENT e (e) >
这是一个例子,在下面的评论中,alex会在DTD中调用无限循环。
(2)此DTD也缺少实例:类型e
的每个实例都需要IDREF引用文档中的某个ID,但没有声明类型ID的属性,因此不能指向任何ID在
<!ELEMENT e ANY >
<!ATTLIST e ref IDREF #REQUIRED >
(3)此DTD也没有有效实例:每个实例都需要一个f
元素,但没有声明f
元素。
<!ELEMENT e (f) >
任何不包含元素声明的DTD也不能令人满意。