1.简介:
a.定义:
用一套预先规定的XML元素和属性创建的,这些元素和属性定义了XML文档的结构和内容模式。XML Schema规定XML文档实例的结构和每个元素/属性的数据类型
b.新特性:
(1)基于xml语法
(2)可以用能处理xml文档的工具处理
(3)大大扩充了数据类型,可以自定义数据类型
(4)支持元素的继承--Ojbect-oriented
(5)支持属性组
2.数据类型:
a.基本数据类型:
b.扩展数据类型
c.数据类型特性
3.元素类型:
1>schema元素:
a.作用:包含已经定义的schema
b.用法:<xs:schema>
c.属性:-xmlns -targerNamespace
2>element元素:
a.作用:声明一个元素
b.用法:<xs:element>
c.属性:
--name(名称)
--type(类型)
--ref(引用)
--minOccurs(最多出现次数)unbounded(表示不限制最大出现次数)
--maxOccurs(最小出现次数)
--substitutionGroup
--fixed
--default
3>group元素:
a.作用:把一组元素声明组合在一起,以便它们能够一起被复合类型应用
b.属性:name/ref
c.定义:
d.引用:
4>attribute元素:
a.作用:声明一个属性
b.属性:name/type/ref/use
5>attributeGroup元素:
a.作用:把一组属性声明组合在一起,以便可以被复合类型应用
b.属性:name/ref
c.定义:
d.引用:
6>simpleType元素:
a.作用:定义一个简单类型,决定了元素和属性值的约束和相关信息
b.属性:name
c.内容:应用已经存在的简单类型,三种方式:
-restrict--->限定一个范围,定义一个约束条件
定义:
引用:
-list--->从一个特定数据类型的集合中选择定义一个简单类型元素
定义:
引用:
-union--->从一个特定简单数据类型的集合中选择定义一个简单类型元素
定义:
引用:
7>complexType元素:
a.作用:定义一个复合类型,决定了一组元素和属性值的约束和相关信息
b.属性:name
c.与simpleType的区别:
1)simpleType类型的元素没有子元素,也没有属性
2)当需要定义的元素包含子元素或者属性时,必须使用CompleType
3)当需要基于内置的基本数据类型定义一个新的数据类型时,用SimpleType
8>simpleContent元素:
a.作用:应用于complexType,对它的内容进行约束和扩展,表示该ComplexType没有子元素,同时该ComplexType需要有属性,否则就成为SimpleType元素
b.定义:
9>choice元素:
a.作用:允许唯一的一个元素从一个组中选择
b.属性:minOccurs/maxOccurs(choice里面的每个元素在定义的element中最多最少出现的次数)
c.定义:
d.引用
10>sequence元素
a.作用:给一组元素一个特定的序列,序列中所有元素按顺序出现,
b.属性:minOccurs/maxOccurs(该序列中的所有元素作为一个整体出现的次数)
c.定义:
d.引用:
11>schema小结:
通过DOCTYPE可以明确指定文档的根元素,因为DOCTYPE后面跟的元素就是文档的根元素;通过Schema是无法明确指定目标XML文档的根元素,xmlspy
是通过推断哪个元素包含了其他元素来选择包含其他元素最多的那个元素作为文档的根,但我们可以明明指定文档的根元素而不必按照
schema是另一种文档类型定义,遵循XML的语言规范
schema是可扩展的,支持命名空间
schema 支持更多的数据类型与元素类型
schema用element声明元素,用attribute声明元素的属性
schema用simpleType定义简单类型(表明元素不包含属性,不包含子元素),用complexType定义复杂类型