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