【问题标题】:How to define same-named elements in DTD having different parent elements?如何在具有不同父元素的DTD中定义同名元素?
【发布时间】:2011-09-07 08:06:12
【问题描述】:

假设我有以下 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 中,我如何解释“名称”元素同时用于作者和书籍这一事实,并且可以有不同的子元素——像这样?

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

【问题讨论】:

    标签: xml dtd


    【解决方案1】:

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

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

    这意味着您将不得不使用 DTD 以外的其他东西来强制 name 包含 #PCDATA 一个 first_name 后跟一个 last_name

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-07
      相关资源
      最近更新 更多