假设我有以下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>
Run Code Online (Sandbox Code Playgroud)
在我的DTD中,我如何解释"name"元素用于作者和书籍的事实,并且可以有不同的子元素 - 像这样?
<!ELEMENT name (#PCDATA|first_name,last_name)>
Run Code Online (Sandbox Code Playgroud)
由于您的name元素是混合内容(子元素或#PCDATA),因此您必须将元素声明更改为:
<!ELEMENT name (#PCDATA|first_name|last_name)*>
Run Code Online (Sandbox Code Playgroud)
这意味着您将不得不使用除DTD之外的其他内容来强制执行name包含#PCDATA 或一个first_name后跟一个last_name.
| 归档时间: |
|
| 查看次数: |
2949 次 |
| 最近记录: |