我想为此xml文档创建DTD架构:
<root>
<student>
<name>
<firstname>S1</firstname>
<lastname>S2</lastname>
</name>
</student>
<course>
<name>CS101</name>
</course>
</root>
如您所见,name
中的元素course
包含纯文本,但name
中的元素student
是复杂类型(名字,最后一个) -名称 )。以下是DTD:
<!ELEMENT root (course|student)*>
<!ELEMENT student (name)>
<!ELEMENT name (lastname|firstname)>
<!ELEMENT firstname (#PCDATA)>
<!ELEMENT lastname (#PCDATA)>
<!ELEMENT course (name)>
当我想验证它时,我收到错误,因为课程name
的结构与学生的name
不同。
我的问题:
name
的名称,为此情况制作解决方法。 感谢。
答案 0 :(得分:10)
抱歉!这是DTD的主要限制之一:给定的元素名称始终具有相同的内容模型。
您可以做的就是放弃对该特定元素的完全验证,并允许所有可能的内容:
<!ELEMENT name (#PCDATA|lastname|firstname)*>