DTD 定义混合内容元素的出现次数

DTD define Number of occurrences of elements with mixed content

在 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" 必须以“)*”结尾。

请帮忙..

contact 元素的限制条件是,office 元素只能出现一次,mobile 元素必须出现一次或多次,email 元素是可选的。

这就是我想要的,

<contact>
            Contact Details:
            <email>sam@yahoo.com</email>
            <mob>077769768</mob>
            <office>036568879</office>
</contact>

Mixed content 只能以一种方式声明。您不能指定一个元素在混合内容声明中可以出现多少次。

您的声明必须如下所示:

<!ELEMENT contact (#PCDATA|office|mobile|email)*>

The constraints for the contact element are, the office element must appears only one time, the mobile element must appears one or more times, the email element is optional.

您的限制听起来不像您需要混合内容;也许这就足够了:

<!ELEMENT contact (office,mobile+,email?)>

混合内容模型只能指定可以出现的子元素的名称。无法设置子元素顺序或出现次数。有这些限制,不建议使用混合内容模型。