DTD文件中|、?、+、*、,等符号及括号含义与示例代码解析
DTD 元素声明规则与示例详解
基础符号含义说明
- 括号
():包裹的是master元素允许包含的子元素的内容模型规则,相当于把一组子元素规则打包成一个整体进行控制 - 竖线
|:代表或的关系,多个选项中任选其一即可 - 逗号
,:代表按顺序同时出现的关系,逗号前的元素必须出现在逗号后的元素之前,且所有规则项都要按顺序匹配 - 问号
?:代表前面的元素/规则组可以出现0次或1次,属于可选项,最多出现1次 - 加号
+:代表前面的元素/规则组可以出现1次或多次,最少出现1次,不限制上限 - 星号
*:代表前面的元素/规则组可以出现0次或多次,既可以不出现,也可以出现任意次数
逐行代码含义解释
<!ELEMENT master (big | small)*>
master 元素可以是空内容,也可以包含任意数量的big或small元素,两类元素的排列顺序无限制,允许混合出现<!ELEMENT master (big* | small*)>
master 元素的子元素只能二选一:要么包含任意数量(含0个)的big元素,要么包含任意数量(含0个)的small元素,不允许big和small同时出现<!ELEMENT master (big+, small*)>
master 元素的子元素必须按顺序排列:至少先出现1个big元素,后面可以跟任意数量(含0个)的small元素,不允许颠倒big和small的顺序,也不允许缺少big元素<!ELEMENT master (big, small)*>
子元素的基础规则组是「1个big+ 1个small」的固定顺序组合,该组合可以重复0次或多次。也就是说 master 可以是空内容,也可以包含多组按big→small排列的元素,单独出现big或单独出现small都不符合规则<!ELEMENT master (big, small+)*>
子元素的基础规则组是「1个big+ 至少1个small」的固定顺序组合,该组合可以重复0次或多次。空内容符合规则,每组内small的数量不限制,但不允许单独出现big或单独出现small<!ELEMENT master (big | small+)*>
每次新增子元素可以二选一:要么新增1个big,要么新增至少1个small,整个规则可以重复0次或多次。空内容符合规则,两类元素的排列顺序无限制<!ELEMENT master (big | small+)>
master 元素的子内容只能二选一:要么是1个big元素,要么是至少1个small元素,不允许同时出现两类元素,也不允许内容为空<!ELEMENT master (big? | small+)>
master 元素的子内容只能二选一:要么不出现元素(空内容)、要么出现1个big元素,要么出现至少1个small元素,不允许big和small同时出现
内容的提问来源于stack exchange,提问作者Namiro_Holadino
相关产品推荐
相关产品推荐

