2014-09-28 54 views
-1

如果我們說DTD是可滿足的,如果有一個對DTD有效的文檔,是否有任何DTD的例子不能滿足?有沒有有效的文檔實例的DTD的例子?

+0

實際上,XML文檔符合DTD,而不是其他方式。 DTD不能說是「符合」,因爲它是以規則的形式規定「符合」的特定含義的地方。 – 2014-09-28 14:44:33

+0

這就像問:如果源符合編程語言,我們說程序是有效的,那麼有沒有任何編程語言的例子是無效的? – slebetman 2014-09-28 14:57:50

+0

好吧,假設一個DTD滿足如果有一個符合的文件,你有沒有可滿足的示例DTD? – alex 2014-09-28 15:01:56

回答

1

有趣的問題(儘管OP的最初的麻煩找到好詞)。

答案是:是的,有DTD沒有有效的實例。這裏有些例子。 (1)此DTD沒有有限實例:元素類型爲e的每個實例都需要另一個元素類型爲e的實例。

<!ELEMENT e (e) > 

這是什麼亞歷克斯,在下面留言,呼籲在DTD無限循環的例子。 (2)此DTD也缺少實例:e類型的每個實例都需要IDREF引用文檔中的某個ID,但沒有聲明類型ID的屬性,因此不能有任何ID指向。

<!ELEMENT e ANY > 
<!ATTLIST e ref IDREF #REQUIRED > 

(3)該DTD還沒有有效的情況下:每個實例需要一個f元件,但沒有f元件被聲明。

<!ELEMENT e (f) > 

任何不包含元素聲明的DTD也是不可滿足的。

+0

,並且如果DTD中存在無限循環,則不存在符合該DTD的XML,例如, <!ELEMENT p(p +)>。 – alex 2014-10-15 23:16:09

相關問題