我已經開始了一項工作,在該工作中給了我一些XML文件和一個DTD。他們工作正常,但我注意到在DTD中,他們正在重複使用這樣的元素。重複使用DTD中的元素
DTD:
<!ELEMENT image EMPTY>
<!ATTLIST image
source CDATA #REQUIRED
signature (true|false|1|0) "false"
>
,並在XML中的圖像元素出現在兩塊地,但只有地方之一要求「簽名」屬性,在其他情況下,它是無關緊要的。
XML:
<root>
<element-with-optional-signature-image>
<image source="1.jpg" singature="true" />
<image source="2.jpg" />
</element-with-optional-signature-image>
<other>
<image source="3.jpg" />
</other>
</root>
我以前從來沒見過,只是這樣寫的,如果想知道一個DTD其共同的或這樣做的一個非常糟糕的方式嗎?我會創建兩個不同的元素element-image
和other-image
。
編輯 -
是一樣接受了上面說的這樣的DTD:
<!ELEMENT element-image EMPTY>
<!ATTLIST element-image
source CDATA #REQUIRED
signature (true|false|1|0) "false"
>
<!ELEMENT other-image EMPTY>
<!ATTLIST image
source CDATA #REQUIRED
>
與XML這樣的:
<root>
<element-with-optional-signature-image>
<element-image source="1.jpg" singature="true" />
<element-image source="2.jpg" />
</element-with-optional-signature-image>
<other>
<other-image source="3.jpg" />
</other>
</root>
是的,我知道。我只是想知道重用像這樣的元素和隱含的簽名屬性是否是個好主意,儘管'other-image'不需要/永遠不需要它來處理系統的其他部分。或者做出兩個不同的元素會更好/更安全,請參閱編輯 – 2011-05-02 03:43:26
好的。在這種情況下,我同意其他答案。不,現在很好。 – 2011-05-02 08:39:30