什么样的XML文档描述了这个DTD?

时间:2014-02-25 20:48:26

标签: xml dtd

哪种XML文档描述了这个DTD? 我无法理解“参考文件”。

<!ELEMENT mag(paper *)>
<!ELEMENT paper(title ,author+,ref*)>
<!ELEMENT title #PCDATA>
<!ELEMENT author #PCDATA>
<!ELEMENT ref paper>

2 个答案:

答案 0 :(得分:6)

你拥有的DTD在语法上是不正确的。这是一个固定的DTD和一个解析文档的例子:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mag [
<!ELEMENT mag (paper*)>
<!ELEMENT paper (title ,author+,ref*)>
<!ELEMENT title (#PCDATA)>
<!ELEMENT author (#PCDATA)>
<!ELEMENT ref (paper)>
]>
<mag>
  <paper>
    <title>Foo</title>
    <author>Blah</author>
    <author>Blah 2</author>
    <ref><paper><title>Bar</title><author>John Doe</author></paper></ref>
  </paper>
</mag>

ref元素的声明没什么特别之处。这是允许paper意味着结构可以递归(可以这么说)paper可以包含ref,其中包含另一个paper,其中可以包含ref等等。

答案 1 :(得分:1)

<!ELEMENT ref paper>

基本上声明元素ref应该由元素paper的单个实例组成。

XML片段类似于:

 ...
 <ref>
   <paper>
     ....
   </paper>
 </ref>
 ...