XML
XML 约束_定义元素
DTD 定义元素
1、定义元素的语法
- 使用 ELEMENT 声明元素
- 例如
<!ELEMENT 元素名 内容类型或内容>
<!ELEMENT name (#PCDATA)>
<!-- 表示 name 元素的内容为文本数据-->
2、元素类型
- 元素类型可以是 ANY 或 EMPTY
<!ELEMENT stu ANY>
<!-- 表示 stu 元素的内容可以是任意元素,也可以是文本数据,也可以是文本数据+子元素,反正就是任意-->
<!ELEMENT stu EMPTY>
<!--表示 stu 不能有任何内容(包括空格),即空元素-->
3、元素内容
- 元素内容可以是文本数据,也可以是子元素
<!ELEMENT stu (#PCDATA)>
<!--表示 stu 元素内容为文本-->
<!ELEMENT stu (name)>
<!--表示 stu 元素内容为 name 子元素,但要注意,如果 <name> 元素没有声明,那么就会出错-->
4、子元素出现次数
- 可以使用 “?”、“*”、“+” 来指定子元素的出现次数
<!ELEMENT stu (name?)>
<!--表示 stu 元素可以有 0~1 个 name 子元素,即 name 子元素可有可无-->
<!ELEMENT stu(name*)>
<!--表示 stu 元素可以有 0~n 个 name 子元素-->
<!ELEMENT stu(name+)>
<!--表示 stu 元素可以有 1~n 个 name 子元素-->
5、多个子元素
- 示例
<!ELEMENT stu (name,age,sex)
<!--表示 stu 必须有三个子元素,分别是 name、age、sex,并且子元素出现的顺序也要与声明的顺序一致-->
6、枚举子元素
- 示例
<!ELEMENT stu (name | age | sex)
<!--表示 stu 只有一个子元素,可以是 name、age、sex 中的任意一个-->
7、复合声明 1
- 示例
<!ELEMENT stu (name | age | sex)?>
<!--表示 stu 元素可以有 0~1 个(name | age | sex),而(name | age | sex)表示 name、age、sex 其中的一个-->
8、复合声明 2
- 示例
<!ELEMENT stu (name | age | sex)*>
<!--表示 stu 元素可以有 0~n 个(name | age | sex),而(name | age | sex)表示 name、age、sex 其中的一个-->
9、复合声明 3
- 示例
<!ELEMENT stu (name | age | sex)+>
<!--表示 stu 元素可以有 1~n 个(name | age | sex),而(name | age | sex)表示 name、age、sex 其中的一个-->
10、练习
- 根据上面 DTD 写 xml 文档
<课件>
<章节>
<简介>水浒传是一部农民起义的故事</简介>
<标题>水浒传第三回景阳冈</标题>
<段落>武松来到景阳冈...</段落>
<说明>作者:施耐庵</说明>
</章节>
<章节>
<简介>水浒传是一部农民起义的故事</简介>
<标题>宋三郎怒杀阎婆惜</标题>
<段落>那日....</段落>
<表格></表格>
</章节>
</课件>
如有错误,欢迎指正!