xml约束之dtd约束和schema约束---3

来源:互联网 发布:淘宝商家热线电话 编辑:程序博客网 时间:2024/05/23 19:13

一、xml约束的作用

规定xml可以出现的元素和元素可以使用的属性,以及他们出现的顺序,以防止程序员乱定义xml

二、约束分类

1、DTD约束:struts框架、hiebernate框架,会用到。注:一个xml中只能用一次
2、SCHEMA约束:tomcat、spring,会用到。注:一个xml中可用多次

三、在xml中引入dtd约束文件的语法

1、内部关联

<!DOCTYPE 根元素名 [dtd 语法]>   很少用

2、外部关联---系统关联

<!DOCTYPE 根元素名 SYSTEM "约束文件的位置">

3、外部关联---公共关联

<!DOCTYPE 根元素名 PUBLIC "约束文件的名称“ ”约束文件的位置“>

四、基本写法

1、<!Element 元素名称 数据类型|包含内容>
①、数据类型:
#PCDATA:普通文本 使用的时候一般用()引起来
②、包含内容:
该元素下可以出现那些元素,用()引起来
符号的含义:
*:出现任意次;?:出现1次或者0次;+:出现至少1次;
|:或者;():分组;,:限定标签出现的顺序

2、<!ATTLIST 元素名 属性名 属性类型 属性是否必须出现>

属性类型:
ID:唯一
CDATA:普通文本
属性是否必须出现
REQUIRED:必须出现
IMPLIED:可以不出现
注意:一个xml文档中只能添加一个DTD约束!

五、xml中引入schema约束

1、一个xml文档中可以添加多个schema约束,这个特性给我们的程序开发给于了极大的便利。
xml和schema的关联格式:
<根标签 xmlns="..." ...>
<根标签 xmlns:别名="..." ...>
名称空间:
关联约束文件
规定元素是来源于那个约束文件的
例如:
一个约束文件中规定:table(表格)  表格有属性 row和col;
还有一个约束文件规定:table(桌子) 桌子有属性 width和height。

2、在同一个xml中万一我把两个约束文件都导入了怎么办?
我们为了避免这种情况的发生,可以给其中的一个约束起个别名
使用的时候若是没有加别名那就代表是来自于没有别名的约束


table(表格) 给他起个别名  xmlns:a="..."
在案例中使用 a:table 代表的是表格
若在案例中直接使用 table 代表的是桌子
在一个xml文件中只能有一个不起别名


注意: schema约束本身也是xml文件。