(三)XML之Schema
来源:互联网 发布:mac制作windows安装盘 编辑:程序博客网 时间:2024/05/02 19:50
什么是Schema
XML Schema是用一套预先规定的XML元素和属性创建的,这些元素和属性定义了XML文档的结构和内容模式;XML Schema规定XML文档实例的结构和每个元素/属性的数据类型。Schema(模式):其作用与dtd一样,也是用于验证XML文档的有效性,只不过它提供了比dtd更强大的功能和更细粒度的数据类型,另外Schema还可以自定义数据类型。此外,Schema也是一个XML文件,而dtd则不是。
1、同样一个XML使用DTD和Schema进行校验:
2、为什么要使用Schema
DTD 的局限性
–DTD不遵守XML语法(写XML文档实例时候用一种语法,写DTD的时候用另外一种语法)
–DTD数据类型有限(与数据库数据类型不一致)
–DTD不可扩展
–DTD不支持命名空间(命名冲突)
Schema的新特性
–Schema基于XML语法
–Schema可以用能处理XML文档的工具处理
–Schema大大扩充了数据类型,可以自定义数据类型
–Schema支持元素的继承—Object-Oriented’
–Schema支持属性组
3、Schema的文档结构:
被验证XML文件
所有的schema文档,其根元素必须为schema;用于构造schema的元素和数据类型来自http://www.w3.org/2001/XMLSchema命名空间;
4、Schema的数据类型
•简单类型
–内置的数据类型(built-in data types)
•基本的数据类型
•扩展的数据类型
–用户自定义数据类型(通过simpleType定义)
•复杂类型(通过complexType定义)
基本数据类型:
扩展数据类型:
数据类型的特性:
5、Schema的元素类型:
•schema
•element
•attribute
•group
•attributeGroup
•simpleType
•simpleContent
•complexType
choice
list
union
unique
sequence
restriction
1)schema元素
作用:包含已经定义的schema
•用法:<xs:schema>
•属性:
–xmlns
–targetNamespace
2)element元素
作用:声明一个元素
•属性:
–name
–type
–ref
–minOccurs
–maxOccurs
–substitutionGroup
–fixed
–default
举例:
3)group元素
•作用:把一组元素声明组合在一起,以便它们能够一起被复合类型应用
•属性:name/ref
4)attribute元素
•作用:声明一个属性
•属性:name/type/ref/use
5)attributeGroup元素
•作用:把一组属性声明组合在一起,以便可以被复合类型应用
•属性:name/ref
6)simpleType元素
•作用:定义一个简单类型,它决定了元素和属性值的约束和相关信息
•属性:name
•内容:应用已经存在的简单类型,三种方式:
–restrict→限定一个范围
–list→从列表中选择
–union→包含一个值的结合
《1》.子元素为:<xs:restriction>定义一个约束条件
《2》.子元素为:<xs:list>从一个特定数据类型的集合中选择定义一个简单类型元素
《3》.子元素为:<xs:union>从一个特定简单数据类型的集合中选择定义一个简单类型元素
7)complexType元素
•作用:定义一个复合类型,它决定了一组元素和属性值的约束和相关信息
•属性:name
8)complexType与simpleType的区别
•simpleType类型的元素中不能包含元素或者属性。
•当需要声明一个元素的子元素和/或属性时,用complexType;
•当需要基于内置的基本数据类型定义一个新的数据类型时,用simpleType。
1) SimpleType类型的元素没有子元素,也没有属性。
2) 当需要定义的元素包含了子元素或者属性时,必须要使用ComplexType。
9)simpleContent元素
作用:应用于complexType,对它的内容进行约束和扩展,元素的内容和属性都定义在simpleContent中,同时,元素下不包括子元素,所以必定包含属性,(extension表示这个元素类型)
SimpleContent,用于ComplexType元素上,用于限定该ComplexType的内容类型,表示该ComplexType没有子元素,同时该ComplexType需要有属性,否则它就成为SimpleType了。
10)choice元素
•作用:允许唯一的一个元素从一个组中被选择
•属性:minOccurs/maxOccurs
choice的次数minOccurs="1" maxOccurs="3"是指下面的整体出现次数。
11)sequence元素
•作用:给一组元素一个特定的序列
6、通过DOCTYPE可以明确指定文档的根元素,因为DOCTYPE后面跟的元素就是文档的根元素;通过Schema是没法明确指定目标XML文档的根元素,XmlSpy是通过推断哪个元素包含了其他元素来选择包含其他元素最多的那个元素作为文档的根,但我们可以明确指定文档的根元素而不必按照XmlSpy的生成来做。
•Schema是另一种文档类型定义,它遵循XML的语言规范。
•Schema是可扩展的,支持命名空间;
•Schema支持更多的数据类型与元素类型;
•Schema用element声明元素,用attribute声明元素的属性;
•Schema用simpleType定义简单类型,用complexType定义复杂类型。
- (三)XML之Schema
- 初识XML(三)Schema
- 理解XML Schema: XML Schema初步 (三)
- XML学习之Xml Schema:三、自定义简单类型--facet
- XML Schema帮你建模(三)
- W3C XML Schema 教程 (三)
- XML学习笔记(三) -- Schema
- XML::XML SCHEMA学习三
- javaWeb系列之三(XML的简介与约束(DTD和Schema))
- XML学习笔记(三):XML规范:Schema详解
- Solr基础教程之Schema.xml(二)
- XML学习之 schema
- Xml Schema 之 指示器
- xml之schema
- XML之Schema验证
- XML之Schema约束
- XML学习之Schema
- XML之Schema验证
- iOS开发编码建议与编程经验
- Android7.0 PowerManagerService(1) 启动过程
- 求一个排序数组中绝对值最小的数
- WKWebview与javascript的交互
- Android应用程序未捕获异常并提示用户发送给开发者
- (三)XML之Schema
- macbook/macOS安装redis
- 关于webpack的用法笔记
- 函数调用过程原理及函数栈帧分析
- Plugin with id com.android.application not found
- 如何将一个目录下的所有文件,合并成一个文件
- Android EditText多行或单行有上下滑动问题(背景比宽高大)
- vs2010使用心得
- (四)XML设计模式——简单工厂模式