我正在寫一個XML結構,允許靈活的屬性名稱,像這樣的DTD:可以編寫DTD來允許任何名稱的一個或多個屬性?
<root_element>
<child_element>
<element_with_attrib iCouldbeAnything="value" defined="true" />
</child_element>
</root_element>
因此,這裏是這個簡單的DTD:
<!ELEMENT root_element (child_element)*>
<!ELEMENT child_element (element_with_attrib)+>
<!ELEMENT element_with_attrib EMPTY>
<!ATTLIST element_with_attrib
defined CDATA #IMPLIED
iCouldbeAnything CDATA #IMPLIED
>
問題對XML的要求是「iCouldBeAnything」必須是任何東西。 是否可以使用DTD來描述它,還是需要依賴其他類型的XML驗證?
嗯,爲什麼一個DTD,而不是一個架構? – bmargulies 2011-03-24 23:06:09
好吧,DTD是XML的一種模式。我假設你在談論XSD? XSD的優點是什麼? DTD似乎被廣泛接受。 – danieltalsky 2011-03-24 23:10:50
DTD遠不如W3C XML Schema和RelaxNG更靈活,更不用說schematron。對於'文檔'類型的東西,relaxng正變得非常流行,'數據'類型的東西是W3C XML Schema。要麼能輕鬆表達你想要的東西。 – bmargulies 2011-03-24 23:51:32