一.示例用xml代码
<?xml version="1.0" encoding="GBK"?>
<person>
<name>xiaoming</name>
<age>23</age>
</person>
二. 限制元素时的格式(有几个元素,就创建几个Element标签)
<!ELEMENT 元素名 约束条件>
△ 约束条件(分为简单元素与复杂元素):
<1>元素分类:复杂元素指的是含有子元素的元素,反之不含子元素则为简单元素
<2>若为简单元素:
- (#PCDATA) 该元素的内容为字符串型
- EMPTY 该元素不含内容
- ANY 该元素内容不做限定(为空或者字符串型)
<3>若为复杂元素格式:<!ELEMENT 元素名 (子元素名)>
- 子元素之间用 , 隔开,表示元素出现顺序严格按照该顺序出现
- 子元素之间用 | 隔开,表示这些元素中任选其一(类似枚举)
- , 以及 | 可以同时使用,但是用 | 隔开的元素外要加上 () 代表分组
<!-- 表示Person元素中有两个简单元素name和age,name一定要出现,age和sex任选其一出现 -->
<!ELEMENT person (name,(age|sex))>
<4>限制元素出现的次数(利用通配符,通配符写在元素名后)
- 当没有使用通配符限制次数时,默认是必须且只出现一次(==1)
- ?通配符:该元素出现0次或1次(==0 || ==1)
- *通配符:该元素出现次数随机(>=0)
- +通配符:该元素至少出现1次(>=1)
三.限制属性时的格式
<!ATTLIST 元素名
属性名 属性类型 属性约束条件
>
- 属性类型:
- CDATA 该属性值为字符串类型
- 枚举形式 该属性值为其中任选其一 (中间用 | 隔开) eg: (true|false)
- ID 设置属性类型为ID的每个元素该属性值都不能相同(唯一)
- 属性约束条件:
- #REQUIRED : 该属性必须存在
- #IMPLIED : 该属性可有可无
- #FIXED : 代表属性具有固定值,不能更改(值就跟在之后)
- 直接给一个值 :代表属性的默认值
四.实体 (注意:实体必须通过内部导入的dtd文件中设置)
1.创建实体
<!ENTITY 实体名 实体值>
举例:
<!-- 设置一个实体 -->
<!ENTITY test entity>
2.调用实体
&实体名;
举例:
<!-- 调用实体 -->
&test;
五.导入dtd文件的三种方法(注意:只能导入一个dtd文件!!!)
- 通过外部导入dtd文件
<!DOCTYPE 根元素名称 SYSTEM "dtd文件路径">
- 通过内部导入dtd文件
<!DOCTYPE 根元素名称 [dtd代码]>
- 通过网络文件导入dtd文件
<!DOCTYPE 根元素名称 PUBLIC "dtd名称" "dtd的URL路径">