我需要一個DTD其允許元素A爲具有0,1或2子元素B.我與DTD:0,1或2個元素
<!ELEMENT A (B? |(B,B))>
嘗試過,但然後我得到一個錯誤:
validity error : Content model of A is not determinist
這是什麼問題,我該如何解決它?或者不可能用DTD解決它?
我需要一個DTD其允許元素A爲具有0,1或2子元素B.我與DTD:0,1或2個元素
<!ELEMENT A (B? |(B,B))>
嘗試過,但然後我得到一個錯誤:
validity error : Content model of A is not determinist
這是什麼問題,我該如何解決它?或者不可能用DTD解決它?
內容模型,如
(B? |(B,B))
或
(B?, B?)
或
(B? | (B,B) | B)
是非確定性的;解析器無法分辨哪個B
正在被匹配,而沒有展望後面的內容。
XML 1.0建議中不允許使用非確定性內容模型:http://www.w3.org/TR/xml/#determinism。但是,確定性要求與SGML兼容。我想,這可能解釋XML解析器之間的行爲差異幫助:
參見:<!(?B1,B2)ELEMENT A>What is the reason for not allowing non-deterministic element declarations in DTDs and XSD schemas?
試試這個DTD,從而獲得所需XML:
<!ELEMENT A ((B?|(B,B)|B))>
<!ELEMENT B (#PCDATA)>
同樣的錯誤 – SPie 2013-05-02 17:04:06
試試這個 – IndoKnight 2013-04-30 15:26:41
這是我的第一個解決方案,但同樣的錯誤再次 – SPie 2013-05-02 00:43:22