在 DTD 中定义重复的子元素

发布于 2024-07-24 06:02:56 字数 1110 浏览 5 评论 0原文

我正在尝试生成 DTD,并且想知道如何允许子元素包含已在 DTD 中声明的元素。 需要再次申报吗? 举个例子:

<?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)>

]> <文档> <作者>我的作者 <标题>我的标题测试 <正文> <小时/>> <表> 想要这里的元素

例如,在上面的 XML 中,我希望允许 br、hr、img 和 table 标签位于 td 标签内。 我是否必须在 DTD 中重新定义这些元素?

我感谢您的帮助并提前感谢您。

I'm trying to generate a DTD and I was wondering how to allow child elements to contain elements that have already been declared in the DTD. Do you have to declare them again? As an example:

<?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)>

<!--hr element--> <!ATTLIST hr width CDATA "0">

<!--img element--> <!ATTLIST img height CDATA "0"> <!ATTLIST img src CDATA #REQUIRED> <!ATTLIST img width CDATA "0">

<!--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>

In the above XML, I'd like to, for example, allow the br, hr, img and table tags to be within the td tag. Do I have to redefine those elements in the DTD?

I appreciate any help and thank you in advance.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

能否归途做我良人 2024-07-31 06:02:56

您应该在 定义

编辑中引用它们:
如果您想将解析后的字符数据与新标签一起保留在 td 元素中,则可以定义混合内容元素。
示例:

请参阅 元素声明 at w3.org

you should reference them in the <!ELEMENT td> definition

edit:
if you want to maintain the parsed character data in the td element along with the new tags, you can define a mixed content element.
example:

<!ELEMENT td (#PCDATA | br? | hr? | img?)>

see element declarations at w3.org

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文