xml约束
1.元素声明
(1)any元素类型
<!ELEMENT 元素名 ANY>
(2)EMPTY元素类型
<!ELEMENT 元素名 EMPTY>
空标记,即元素中没有内容,不能包含子元素和文本
<person name="" age="" />
(3) PCDATA类型的元素(纯文本)
<!ELEMENT 元素名 (#PCDATA) >
e.g <!ELEMENT year (#PCDATA) >
(4)父元素类型
<!ELEMENT person(student*,teacher+)>
符号 | 代表可以出现次数 |
? | 0 or 1 |
* | >=0 |
+ | >=1 |
无符号 | ===1 |
正则表达式的用法:
符号 | 用途 | 实例 | 说明 |
() | 用来给元素分组 |
(古龙|金庸|梁羽生), (王硕|玉洁),毛毛 |
分成三组 |
| | 在列出的对象中选择一个 | (男人|女人) | 二选一 |
+ | >=1 | (student+) | |
* | >=0 | ||
? | 0or 1 | ||
, | 对象必须按照指定的顺序出现 |
,e.g
<!ELEMENT student(age?,name,grade+)>
<!ELEMENT element(a|b|c)>
(5)混合元素类型
<!ELEMENT element(#PCDATA|element2)>
e.g.
<!ELEMENT productData(product+)> <!ELEMENT product(name,description,price,question)> <!ELEMENT name(#PCDATA)> <!ELEMENT description(#PCDATA)> <!ELEMENT price(#PCDATA)> <!ELEMENT question(EMPTY)>