什么是XML约束?
在XML技术里,可以编写一个文档来约束一个XML文档的书写规范,这称之为XML约束。
为什么需要XML约束
常用的约束技术
XML DTD
XML Schema
引用DTD约束
XML文件使用 DOCTYPE 声明语句来指明它所遵循的DTD文件,DOCTYPE声明语句有两种形式:
当引用的文件在本地时,采用如下方式:
<!DOCTYPE 文档根结点 SYSTEM "DTD文件的URL"> 属性定义 xml文档中的标签属性需通过ATTLIST为其设置属性
语法格式:
<!ATTLIST 元素名
属性名1 属性值类型 设置说明
属性名2 属性值类型 设置说明
……
>
属性声明举例:
<!ATTLIST 商品
类别 CDATA #REQUIRED
颜色 CDATA #IMPLIED
>
对应XML文件:
<商品 类别="服装" 颜色="黄色">…</商品>
<商品 类别="服装">…</商品>
设置说明: #REQUIRED:必须设置该属性
#IMPLIED:可以设置也可以不设置
#FIXED:说明该属性的取值固定为一个值,在 XML 文件中不能为该属性设置其它值。但需要为该属性提供这个值
直接使用默认值:在 XML 中可以设置该值也可以不设置该属性值。若没设置则使用默认值。
举例:
<!ATTLIST 页面作者
姓名 CDATA #IMPLIED
年龄 CDATA #IMPLIED
联系信息 CDATA #REQUIRED
网站职务 CDATA #FIXED "页面作者"
个人爱好 CDATA "上网"
>
常用属性值类型 CDATA:表示属性值为普通文本字符串。
ENUMERATED
ID
ENTITY(实体)
在struts1里action标签必须要设置的属性:path
- <!ELEMENT action (icon?, display-name?, description?, set-property*, exception*, forward*)>
- <!ATTLIST action id ID #IMPLIED>
- <!ATTLIST action attribute %BeanName; #IMPLIED>
- <!ATTLIST action className %ClassName; #IMPLIED>
- <!ATTLIST action forward %RequestPath; #IMPLIED>
- <!ATTLIST action include %RequestPath; #IMPLIED>
- <!ATTLIST action input %RequestPath; #IMPLIED>
- <!ATTLIST action name %BeanName; #IMPLIED>
- <!ATTLIST action parameter CDATA #IMPLIED>
- <!ATTLIST action path %RequestPath; #REQUIRED>
- <!ATTLIST action prefix CDATA #IMPLIED>
- <!ATTLIST action roles CDATA #IMPLIED>
- <!ATTLIST action scope %RequestScope; #IMPLIED>
- <!ATTLIST action suffix CDATA #IMPLIED>
- <!ATTLIST action type %ClassName; #IMPLIED>
- <!ATTLIST action unknown %Boolean; #IMPLIED>
- <!ATTLIST action validate %Boolean; #IMPLIED>