我已经开始了一项工作,我获得了一些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>
答案 0 :(得分:3)
我认为重用这样的元素是一个好主意。它使XML保持简单且不那么冗长。
在这个例子中,我认为创建一个新元素仅仅因为它不需要使用可选属性就太过分了。
答案 1 :(得分:0)
在此DTD中,不需要签名属性。 source属性是。