在DTD中声明混合内容元素时,如何为子元素添加约束? 这是我的xml。
<!ELEMENT manager (contact)>
<!ATTLIST manager name CDATA #REQUIRED>
<!ELEMENT contact (#PCDATA|office|mobile+|email*)*>
<!ELEMENT mob (#PCDATA)>
<!ELEMENT office (#PCDATA)>
<!ELEMENT email (#PCDATA)>
当我写这篇文章时,我遇到一个错误,提示当子元素的类型受到约束时,混合内容模型“联系人”必须以“)*”结尾。
请帮助。
对contact元素的约束是,office元素必须仅出现一次,mobile元素必须出现一次或多次,email元素是可选的。
这是我想要的,
<contact>
Contact Details:
<email>sam@yahoo.com</email>
<mob>077769768</mob>
<office>036568879</office>
</contact>
答案 0 :(得分:0)
Mixed content只能以一种方式声明。您无法指定元素在混合内容声明中可以出现多少次。
您的声明必须如下所示:
<!ELEMENT contact (#PCDATA|office|mobile|email)*>
contact元素的约束是,office元素必须 仅出现一次,移动元素必须出现一次或多次 时间,电子邮件元素是可选的。
您的约束听起来并不像您需要混合的内容;也许就足够了:
<!ELEMENT contact (office,mobile+,email?)>
答案 1 :(得分:0)
混合内容模型只能指定可能出现的子元素的名称。无法设置子元素顺序或出现次数。有这些限制,不建议使用混合内容模型。