XML之自定义DTD约束
1.什么是DTD
文档类型定义(DocumentType Definition,简称DTD)。
2.DTD有什么用
1)DTD定义了XML文档内容的结构,保证XML以一致的格式存储数据。
2)XML允许用户创建自己的DTD约束。
3)通过DTD约束,XML解析器可以检查XML文档内容的有效性。
3.DTD语法
DTD文件是以dtd为后缀
3.1.约束元素
3.1.1.元素类型
和java语法意义,元素也是有类型区分的,元素有以下几种类型:
1)EMPTY(空元素),元素不包含任何数据(就是空标签),但是可以有属性。
2)#PCDATA(只有PCDATA的元素),PCDATA是指被解析器解析的文本(字符串内容),不能包含其他类型的元素。例如(
这是字符串,不包含其他标签
)3)ANY(任何内容都可以)。
3.1.2.元素出现顺序和数量
项目
书写语法
描述
顺序出现
子元素a、b必须同时出现,且a必须在b之前出现
选择出现
子元素a、b只能有一个出现,要么是a,要么是b
只出现一次
子元素a只能且必须出现一次
一次或多次
子元素a要么出现一次,要么出现多次
零次或多次
子元素a可以出现任意次(包括不出现,即出现零次)
零次或一次
子元素a可以出现一次或不出现
3.1.3.元素格式
3.1.3.1定义一个空元素
使用
3.1.3.2定义一个#PDATA元素
使用
3.1.3.3定义一个ANY元素
使用
3.2.约束属性
3.2.1.属性值类型
1)CDATA,属性值为普通文本字符串。
2)ENUMERATED,属性值的类型是一组取值的列表,XML文件中设置的属性值只能是这个列表中的某一个值。就好比java中的枚举类型,只能是其中的某个枚举值。
3)ID,表示属性值必须唯一。
3.2.2.设置说明
1)#REQUIRED,必须设置该属性。
2)#IMPLIED,该属性可以设置也可以不设置。
3)#FIXED,该属性的值为固定的。
4)使用默认值。
3.2.3.属性格式
3.2.3.1定义属性约束
4.引入自定义DTD
4.1内联
内联,意思就是在XML文件内部定义DTD约束。使用 ]>标签包裹。
]>
这是一个user元素
4.2外部引用(本地)
将约束写在一个dtd文件中,通过
DTD文件
XML文件
这是一个user元素
4.3外部引用(公用)
称" "DTD文件的URL">
例如:"http://java.sun.com/dtd/web-app_2_3.dtd">