2014-06-06 140 views
1

在我的xml:XML DTD父元素

<mother> 
    <name>mary</name> 
    <child> 
      <name>Ali</name> 
    </child> 
</mother> 
我DTD

这样:

<!ELEMENT mother (name,child)> 
<!ELEMENT name (#PCDATA)> 
<!ELEMENT child (name)> 
<!ELEMENT name(#PCDATA)> 

当我尝试运行DTD,它说我的名字已经被宣布。所以我应该如何改变才能解决这个问题?

回答

1

不需要第二个name声明。这三个声明:

<!ELEMENT mother (name,child)> 
<!ELEMENT name (#PCDATA)> 
<!ELEMENT child (name)> 

足以验证您的文件。您的DTD“说”:

  1. <mother>元素必须包含一个序列一个<name>,其次是一个<child>
  2. <name>元素可以包含解析的字符数据(任何文本,包括什么,但没有标签)
  3. <child>元素必须完全包含一个<name>