xml - DTD 定义具有混合内容的元素的出现次数
问题描述
在 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>
解决方案
混合内容只能以一种方式声明。您无法指定一个元素在混合内容声明中可以出现多少次。
您的声明必须如下所示:
<!ELEMENT contact (#PCDATA|office|mobile|email)*>
contact 元素的约束条件是,office 元素必须只出现一次,mobile 元素必须出现一次或多次,email 元素是可选的。
您的限制听起来不像您需要混合内容;也许这就足够了:
<!ELEMENT contact (office,mobile+,email?)>
推荐阅读
- java - Split string and add unique strings to list in java
- google-apps-script - 如何使用 Apps 脚本将 google sheet 文件的数据导入其他 google sheet 文件?
- python - 赋值前引用的局部变量“工具”
- amazon-web-services - 将 AWS Amplify 前端与 EC2 实例连接起来?
- css - Tailwind 文本颜色在悬停时不会改变
- r - ggplot图例未显示正确的类型行
- r - 将字符串作为因素读取的问题;前面的空格似乎很重要
- angular - 在本地使用 Google Oauth 2.0 时出现错误 400:invalid_request
- haskell - 在 Haskell 中寻找完美数
- data-structures - p->next = q 和 p=q 有什么区别,其中 p 和 q 都是指向结构的指针