如何在具有不同父元素的 DTD 中定义同名元素?

发布于 2024-11-13 19:51:05 字数 803 浏览 1 评论 0原文

假设我有以下 XML:

<data>
  <authors>
    <author>
      <name>
        <first_name>Stephen</first_name>
        <last_name>Baxter</last_name>
      </name>
    </author>
    <author>
      <name>
        <first_name>Joe</first_name>
        <last_name>Haldeman</last_name>
      </name>
    <author>
  </authors>
  <books>
    <book>
      <name>The Time Ships</name>
    </book>
    <book>
      <name>The Forever War</name>
    <book>
  </books>
</data>

在我的 DTD 中,我如何解释“name”元素同时用于作者和书籍并且可以有不同的子元素的事实——就像这样?

<!ELEMENT name (#PCDATA|first_name,last_name)>

Let's say I have the following XML:

<data>
  <authors>
    <author>
      <name>
        <first_name>Stephen</first_name>
        <last_name>Baxter</last_name>
      </name>
    </author>
    <author>
      <name>
        <first_name>Joe</first_name>
        <last_name>Haldeman</last_name>
      </name>
    <author>
  </authors>
  <books>
    <book>
      <name>The Time Ships</name>
    </book>
    <book>
      <name>The Forever War</name>
    <book>
  </books>
</data>

In my DTD, how would I account for the fact that the "name" element is used for both authors and books and can have different child elements--like this?

<!ELEMENT name (#PCDATA|first_name,last_name)>

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

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

发布评论

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

评论(1

╰ゝ天使的微笑 2024-11-20 19:51:05

由于您的 name 元素是混合内容(子元素或 #PCDATA),因此您必须将元素声明更改为:

<!ELEMENT name (#PCDATA|first_name|last_name)*>

这意味着您将必须使用除DTD 强制 name 包含 #PCDATA 一个 first_name 后跟一个 last_name

Since your name element is mixed content (both child elements or #PCDATA), you're going to have to change your element declaration to this:

<!ELEMENT name (#PCDATA|first_name|last_name)*>

This means that you are going to have to use something other than DTD to enforce that name contains #PCDATA or one first_name followed by one last_name.

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