哪种XML文档描述了这个DTD? 我无法理解“参考文件”。
<!ELEMENT mag(paper *)>
<!ELEMENT paper(title ,author+,ref*)>
<!ELEMENT title #PCDATA>
<!ELEMENT author #PCDATA>
<!ELEMENT ref paper>
答案 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>
...