XML约束---DTD,Schema

一、DTD约束
1.DTD概念
DTD(Document Type Definition),文档类型定义,用于约束XML文档。
规定XML文档中元素名称,子元素的名称及顺序,元素的属性等。
2.DTD重点要求
通常情况下我们是通过框架提供的DTD约束文档编写对应的XML文档。
常见框架使用DTD约束有:struts2、hibernate等。

3.DTD文档声明
(1)内部DTD,在XML文档内部嵌入DTD,只对当前XML有效。

<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
		<!DOCTYPE web-app[
		   ...//具体的语法
		]>
		<web-app>
		</web-app>
(2)外部DTD-本地DTD,DTD文档在本地系统上,公司内部自己项目使用。
<?xml version="1.0" encoding="utf-8" standalone="no" ?>
		<!DOCTYPE web-app SYSTEM "web-app_2_3.dtd">
		<web-app>
		</web-app>
(3)外部DTD-公共DTD,DTD文档在网络上,一般都有框架提供。
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
		<!DOCTYPE web-app PUBLIC "-//Sun Microsystems,Inc.//DTD Web Application 2.3//EN"
		"http://java.sun.com/dtd/web-app_2_3.dtd">
		<web-app>
		</web-app>

4.DTD元素声明

定义元素语法:<!Element 元素名 元素描述>
元素名:自定义
元素描述包括:符号和数据类型
常见符号:? * + () , 
常见类型:#PCDATA 表示内容是文本,不能是子标签。

符号 描述
? 表示该对象可以出现,但只能出现一次
* 表示该对象最少出现任意多次,也可以出现零次
+ 表示该对象最少出现一次,可以出现多次
() 用来给元素分组
| 表明在列出的对象中选择一个
, 表示对象必须按指定的顺序出现
5.属性声明
属性的语法:(attribute)
<!ATTLIST 元素名
			属性名 属性类型 约束
			属性名 属性类型 约束
			...
		>
元素名:属性必须是给元素添加,所有必须先确定元素名
属性名:自定义
属性类型:ID、CDATA、枚举...
ID:ID类型的属性用来标识元素的唯一性
CDATA:文本类型
枚举:(e1|e2|...)多选一
约束:
#REQUIRED:说明属性是必须的:required
#IMPLIED:说明属性是可选的:implied
二、Schema约束
1.Schema概念
Schema是新的XML文档约束,比DTD强大,是DTD替代者;
Schema本身也是XML文档,但Schema文档的开展名为xsd,而不是xml;
Schema功能更强大,数据类型更完善;
Schema支持名称空间。
2.Schema重点要求

可以通过schema约束文档编写xml文档。常见框架使用schema的有spring等。

3.命名空间作用
如果XML文档中使用多个Schema文件,而这些Schema文件中定义了相同
名称的元素时就会出现名字冲突。因此,命名空间是用来处理元素和
属性的名称冲突问题。
4.声明命名空间
默认命名空间:<xxx xmlns="">,使用<标签>

显示命名空间:<xxx xmlns:别名="">,使用<别名:标签>



猜你喜欢

转载自blog.csdn.net/qq_34715484/article/details/79301367