Я пытаюсь сгенерировать DTD, и мне было интересно, как разрешить дочерним элементам содержать элементы, которые уже были объявлены в DTD. Вы должны объявить их снова? Как пример:
<code><?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE document [
<!ELEMENT document (author,title,body)>
<!ELEMENT author (#PCDATA)>
<!ELEMENT title (#PCDATA)>
<!ELEMENT body (br*,hr*,img*,table*)>
<!ELEMENT br EMPTY>
<!ELEMENT hr EMPTY>
<!ELEMENT img EMPTY>
<!ELEMENT table (tr+)>
<!ELEMENT tr (td+)>
<!ELEMENT td (#PCDATA)></p>
<p><!--hr element-->
<!ATTLIST hr width CDATA "0"></p>
<p><!--img element-->
<!ATTLIST img height CDATA "0">
<!ATTLIST img src CDATA #REQUIRED>
<!ATTLIST img width CDATA "0"></p>
<p><!--td element-->
<!ATTLIST td width CDATA "0">
]>
<document>
<author>My Author</author>
<title>My Title Test</title>
<body>
<hr />
<table>
<tr>
<td>Would like elements here</td>
</tr>
</table>
</body>
</document>
В приведенном выше XML-коде я хотел бы, например, разрешить использование тегов br, hr, img и table в теге td. Должен ли я переопределить эти элементы в DTD?
Я ценю любую помощь и заранее благодарю.