Я начал работу, где мне дали несколько файлов 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>