DTD详解
1.元素定义
(1)语法格式
<!ELEMENT 元素名称 使用规则>
(2)举例:
<!ELEMENT 书架 (书名,作者,售价)>
<!ELEMENT 书名 (#PCDATA)>
(3)使用规则:
(#PCDATA)
(书名,作者,售价)
(书名,#PCDATA)
EMPTY
ANY
(4)DTD使用与XML文档同样的注释方式:<!--注释-->
(5)每条元素定义语句的顺序是无关紧要的
(6)具有不同用途的元素不能使用相同的元素名
(7)一个元素的各个组成成分之间可以有各种关系:
<!ELEMENT MYFILE (TITLE AUTHOR EMAIL)
<!ELEMENT MYFILE (TITLE,AUTHOR,EMAIL)
<!ELEMENT MYFILE (TITLE|AUUTHOR|EMAIL)
(8)在元素的使用规则中可以定义子元素出现的次数:
(书+)、(书?)、(书*)、(书)
(9)一对圆括号()可用于将括在其中的内容组合成一个可统一操作的分组,分组中可以嵌套更小的分组。
<!ELEMENT MYFILE ((TITLE*,AUTHOR?,EMAIL)*|COMMENT)>
2.属性定义
(1).语法格式:
<!ATTLIST 元素名
属性名1 属性类型 设置说明
属性名2 属性类型 设置说明
.......
>
(2).举例:
<!ATTLIST 商品
类别 CDATA #REQUIRED
颜色 CDATA #IMPLIED
(3).应用:
<商品 类别=“服装” 颜色=“黄色”>...</商品>
<商品 类别=“服装”>...</商品>
(4).设置说明
#REQUIRED
#IMPLIED
#FIXED
直接使用默认值
(5).类型
CDATA
ENUMERATED
ID
3.实体定义-》引用实体
1.语法格式
<!ENTITY 实体名称 "实实体内容">
<!ENTITY 实体名称 SYSTEM "外部XML文档的URL">
2.引用方式:
&实体名称;
3.举例:
<!DOCTPE copyright [
<!ENTITY copyright SYSTEM "http://www.java.sun/copy.xml"
]>
.....
©right;
4.实体定义-》参数实体
1.语法格式:
<!ENTITY % 实体名称 "实体内容" >
2.引用方式:
%实体名称;
3.举例:
<!ENTITY % TAG_NAMES "姓名|EMAIL|电话|地址">
<!ELEMENT 个人信息 (%TAG_NAMES; | 生日) >
<!ELEMENT 客户信息 (%TAG_NAMES; | 公司名) >