概述:
是用来约束xml文档中可以出现哪些标签,不能出现哪些标签,标签中是否有顺序,出现的次数
作用:
用来规范xml的写法
*****约束的种类及区别:
*DTD
*Schema
区别:DTD语法是自称一体,Schema的语法是xml的语法
schema的语法是xml的语法所有更容易被解析器所解析.
schema支持名称空间
schema有比DTD更加强大的语义和语法的约束
DTD的语法:
*引入的方式:
*内部的DTD:
<!DOCTYPE xml跟标签名 []>
*外部的DTD:
~本地DTD:
<!DOCTYPE xml跟标签名 SYSTEM "路径">
~网络DTD:
<!DOCTYPE xml跟标签名 PUBLIC"//UNKNOWN/" "unkown.dtd">
DTD语法:
*元素:
<!ELEMENT 元素名 元素类型>
元素类型:
~EMPTY
~ANY
~子元素
是否有序:可以使用逗号(有序)或者竖线(无序只能出现一次)
表示出现的次数: ? :零次或一次+:一次或多次 *:零次或多次
~PCDATA
属性:
<!ATTLIST 元素名称 属性名称 属性的类型 属性的约束>
*属性的类型
~id类型: 表示属性的值唯一
~SCDATA 类型:普通字符串
~枚举:
*属性的约束:
Schema的语法:
名称空间:一个xml只能引入一个DTD约束文档,使用了schema约束xml文档,一个xml可以引入多个schema的约束!
名称空间类似如java中的package.用于区分各个schema约束,通过名称空间来区分标签或属性来自与那个文档的…通常名称空间是唯一的不重复的即可,一般使用一个url地址表示一个名称空间
Xmlns:当前文档引用的名称空间 后面加-instance表示被约束文档
targetNameSpace:目标名称空间下面写的约束文档绑定的名称空间
elementFormDefault:用来描述标签的前缀
步骤:1,引入w3c名称空间,标识这个文档是约束文档
步骤2:定义的元素或属性绑定一个名称空间:
步骤3:定义元素和属性:
*找多少个元素
*区分元素是简单的还是复杂的
*复杂的需要确定是否有序,出现次数….
步骤4 ,引入w3c的实例文档的名称空间instance标识当前的文档是实例文档/被约束文档
步骤5:引入约束文档的名称空间:
步骤6:引入约束文档的位置
步骤7:编写xml文档
|
|