什么是XML约束?
在XML技术里,可以编写一个文档来约束一个XML文档的书写规范,这称之为XML约束。
常用的约束技术:XML DTD,XML Schema
元素内容的类型:
#PCDATA:只能书写字符,不能包含子元素,注意: (#PCDATA)
EMPTY:元素内容为空
ANY:元素内容任意
例如:
* CDATA,字符
* (),选择
* ID,设置唯一标识,注意,必须字母开头
* IDREF,引用又存在的ID值
属性定义:
格式:<!ATTLIST 元素名称 [属性名称 属性类型 约束 ...]>
例如:
属性约束的四种形式:
* #required:必须填写
* #IMPLIED:可选
* #FIXED value:固定值
* defaultValue:默认值,如果实例中没有包含该属性,则用默认值,如果有包含并且重新赋值,则用重新赋的值
例如:
内部实体——参数实体:
外部实体:
实例:
books5.xml:
books5.dtd:
part.xml:
XML DTD:
内部DTD:
在xml文件内部书写DTD规范
格式:
<!DOCTYPE 书架 […具体规范内容…]>
例如:
books3.dtd:
例如:
? : 0 1
* : >=0
+ : >=1
() : 分组
| : 选择
,: 顺序
例如:
外部DTD:
books3.xml:books3.dtd:
公共DTD:
格式:
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems,Inc.//DTD Web Application 2.3//EN“
"http://java.sun.com/dtd/web-app_2_3.dtd">
公共DTD约束语法细节:
元素(ELEMENT):
元素的定义:? : 0 1
* : >=0
+ : >=1
() : 分组
| : 选择
,: 顺序
#PCDATA:只能书写字符,不能包含子元素,注意: (#PCDATA)
EMPTY:元素内容为空
ANY:元素内容任意
例如:
属性(ATTLIST):
属性类型:* CDATA,字符
* (),选择
* ID,设置唯一标识,注意,必须字母开头
* IDREF,引用又存在的ID值
属性定义:
格式:<!ATTLIST 元素名称 [属性名称 属性类型 约束 ...]>
例如:
属性约束的四种形式:
* #required:必须填写
* #IMPLIED:可选
* #FIXED value:固定值
* defaultValue:默认值,如果实例中没有包含该属性,则用默认值,如果有包含并且重新赋值,则用重新赋的值
例如:
实体(ENTITY):
实体是变量,用于引用普通文本或特殊字符的快捷方式的变量。
内部实体——参数实体:
参数实体被 DTD 文件自身使用
引用方式:%实体名称;
举例:
<!ENTITY %TAG_NAMES "姓名 | EMAIL | 电话 | 地址">
<!ELEMENT 个人信息 (%TAG_NAMES; | 生日)>
<!ELEMENT 客户信息 (%TAG_NAMES; | 公司名)>
实例:
实例:
外部实体:
实例:
books5.xml:
books5.dtd:
part.xml: