如何为不同目的使用相同的元素名称(在XML和DTD中)?
发布时间:2020-12-16 07:48:54 所属栏目:百科 来源:网络整理
导读:我想为此xml文档创建DTD架构: root student name firstnameS1/firstname lastnameS2/lastname /name /student course nameCS101/name /course/root 如您所见,课程中的元素名称包含纯文本,但学生中的元素名称是复杂类型(名字,姓氏).以下是DTD: !ELEMENT roo
我想为此xml文档创建DTD架构:
<root> <student> <name> <firstname>S1</firstname> <lastname>S2</lastname> </name> </student> <course> <name>CS101</name> </course> </root> 如您所见,课程中的元素名称包含纯文本,但学生中的元素名称是复杂类型(名字,姓氏).以下是DTD: <!ELEMENT root (course|student)*> <!ELEMENT student (name)> <!ELEMENT name (lastname|firstname)> <!ELEMENT firstname (#PCDATA)> <!ELEMENT lastname (#PCDATA)> <!ELEMENT course (name)> 当我想验证它时,我收到一个错误,因为该课程的名称与学生的名字有不同的结构. 我的问题: >如何在不使用DTD而不是xml架构更改元素名称的名称的情况下为此情况制定解决方案. 谢谢.
抱歉!这是DTD的主要限制之一:给定的元素名称始终具有相同的内容模型.
您可以做的就是放弃对该特定元素的完全验证,并允许所有可能的内容: <!ELEMENT name (#PCDATA|lastname|firstname)*> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |