【发布时间】:2011-05-02 00:20:22
【问题描述】:
我开始了一份工作,我得到了一些 XML 文件和一个 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>
【问题讨论】: