javaweb之DTD语法

来源:互联网 发布:灵云网络电视机顶盒 编辑:程序博客网 时间:2024/05/23 19:20
1.如何在xml中引入dtd
(1)外部引入
可以将dtd的约束内容写在外置的dtd文件中,这个文件名后缀必须为.dtd而文件保存时必须用utf-8编码保存
再在xml文件中使用<!DOCTYPE 根元素名称 SYSTEM/PUBLIC 文件位置>
如果写的是SYSTEM表明当前引入的dtd在当前文件系统中.后面制定的文件位置是当前硬盘中的位置
<!DOCTYPE 根元素名称 PUBLIC "DTD名称" "DTD文件的URL">
如果写的是PUBLIC表明当前引入的dtd在网络公共位置中,后面要指明dtd的名字和dtd所在网络位置URL地址
(2)内部引入
直接在xml中书写dtd
<!DOCTYPE 根元素名称[
dtd约束...
]>
2.dtd语法
(1)元素
<!ELEMENT 元素名称  元素约束>
元素约束:
存放类型:ANY/EMPTY任意内容和不能存放内容
元素约束:子元素的列表,将可以包含的子元素用小括号括起来
子元素之前只可以使用逗号进行分割,表明子元素必须按照顺序出现
子元素之前可以使用竖线进行分割,表明子元素出现其中之一
#PCDATA 表明包含标签体
+ 表示一次或多次
* 0次或多次
? 0次或一次
也可以使用小括号进行组的操作
(2)属性
<!ATTLIST 元素名
属性名 属性类型 属性约束
属性名2 属性类型 属性约束
属性类型:
CDATA: 表示属性的值是一个普通字符串
ENUMERATED: 属性是一个枚举列表中的值
ID: 表明属性折值必须在整个文档中都是唯一的,如果有重复的id则校验不通过,ID属性的值只能由字母,下划线开始,不能使用数字,不能出现空白字符
属性约束:
#REQUIRED --- 表明当前属性是一个必须存在的属性,如果这样的属性不存在则在校验时传动报错
#IMPLIED  --- 表明当前属性是一个可选的属性,可以有也可以没有
#FIXED  --- 表明当前属性具有一个固定值,这样的属性不需要进行赋值,自动就会取这个固定值为值.如果这样的属性指定了一个不是固定值为值的值,就会报错
"默认值"  --- 表明当前属性具有一个默认值,如果给了其他的值就用其他值,如果没有给值,则取默认值
(3)ENTITY(实体)
<!ENTITY > 就是对一大段内空的引用,可以简化代码的复用
引用实体
<!ENTITY 实体名称 "实体内容" >
&实体名称;
参数实体:在dtd中引用的实体叫做参数实体
<!ENTITY % 实体名称 "实体内容" >
%实体名称;
0 0
原创粉丝点击