我已经开始了一项工作,在该工作中给了我一些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