Xml 是否有一个没有有效文档实例的DTD示例?

Xml 是否有一个没有有效文档实例的DTD示例?,xml,dtd,Xml,Dtd,如果我们说DTD是可满足的,如果存在针对DTD有效的文档,那么是否有DTD不可满足的示例?有趣的问题(尽管OP最初很难找到合适的词语) 答案是:是的,有些DTD没有有效的实例。这里有一些例子 (1) 此DTD没有有限实例:元素类型e的每个实例都需要元素类型e的另一个实例 <!ELEMENT e (e) > (3) 此DTD也没有有效实例:每个实例都需要f元素,但没有声明f元素 <!ELEMENT e (f) > 任何不包含元素声明的DTD都是不可满足的。实际上,X

如果我们说DTD是可满足的,如果存在针对DTD有效的文档,那么是否有DTD不可满足的示例?

有趣的问题(尽管OP最初很难找到合适的词语)

答案是:是的,有些DTD没有有效的实例。这里有一些例子

(1) 此DTD没有有限实例:元素类型
e
的每个实例都需要元素类型
e
的另一个实例

<!ELEMENT e (e) >
(3) 此DTD也没有有效实例:每个实例都需要
f
元素,但没有声明
f
元素

<!ELEMENT e (f) >


任何不包含元素声明的DTD都是不可满足的。

实际上,XML文档符合DTD,而不是相反。DTD不能说是“符合”,因为它是以规则的形式规定“符合”的特定含义的地方。这就像问:如果源代码符合编程语言,我们说一个程序是有效的,有没有编程语言的例子是无效的?好的,假设一个DTD是可满足的,如果有一个文档是符合的,那么您是否有不可满足的示例DTD?@slebetman,是的,您是对的:这与这里的问题非常相似。一旦我们克服了OP提出问题的困难,它同样有趣。不是很难回答,但很有趣。我们能定义一种没有一致性程序的编程语言吗?或者更一般地说:我们能用BNF来定义一种没有句子的语言吗?并不是每个第一次遇到BNF或编程语言规范工具或DTD的人都会发现答案显而易见。如果DTD中存在无限循环,那么就不会有符合该DTD的XML,例如。
<!ELEMENT e (f) >