2014-03-19 263 views
0

我有一個短的dtd文件,它有大約15個錯誤。我必須找到並描述它們。也許有人可以檢查我的測試並驗證它們?非常感謝。DTD文件需要驗證

下面是代碼:

<!ENTITY % note "(tip | warning | remark)"> //之間有針括號和空格 「|」

<!ENTITY % content "(#PCDATA | icon | menu | ref | iconbmp)*"> //在有「|」的括號和空格之間插入針頭,

<!ELEMENT topic (title, bar, procedure, bar?, %note;)> //重複欄無效,%note;應該在括號內

<!ATTLIST topic id ID #IMPLIED> //應該#REQUIRED而不是#IMPLIED?

<!ELEMENT title (#PCDATA)> //正確

<!ATTLIST title keyword CDATA> //沒有屬性附加傷害的行爲的描述?

<!ELEMENT procedure (step+)> //正確

<!ELEMENT step (action, (%note;)*> //有 「*」

<!ELEMENT action %content;> //%含量後無支架;應在括號內

<!ELEMENT tip %content;> //%content;應在括號

「%」 之間

<!ATTLIST tip for (amateur|expert) "amateur"> //正確

<!ELEMENT warning % note;> //針的空間,和 「注意」,%注;應在括號內

<!ELEMENT remark %note;> // wyrazenie%note;應在括號之間

<!ELEMENT icon (#PCDATA)> //正確

<!ELEMENT menu (#PCDATA | shortcut)+> //針空間 「|」

<!ELEMENT ref (#PCDATA)> //正確

<!ATTLIST ref link idref #REQUIRED> // ref和鏈接,應調換?和#IMPLIED而不是#REQUIRED?

<!ELEMENT shortcut (#PCDATA)> //正確

<!ELEMENT tip (#PCDATA)> //正確

<!ELEMENT iconbmp EMPTY> //正確

<!ATTLIST iconbmp src ENTITY #REQUIRED type NOTATION (bmp | gif | jpeg) "gif"> //針空間betweeen 「|」 ,bmp而不是gif?

+0

對於此請求,您可能會比較好[CodeReview.SE](http://codereview.stackexchange.com/)。 – scenia

回答

0

不必要的括號在DTD中不是錯誤。

白色空間在DTD中不是錯誤。許多讀者發現它使聲明更具可讀性。

將括號放在參數實體替換文本中而不是將它們放在參數實體引用附近不是錯誤。

您確定爲錯誤的一些屬性是語義問題,而不是語法問題;它們可能會或可能不會是錯誤,這取決於DTD的實際要求。

在某些情況下,您認定爲錯誤的一些實際上是錯誤;大多數不是。而且你錯過了「菜單」元素聲明中的語法錯誤。