XML之Schema验证
本片博文是从http://blog.csdn.net/csh624366188的博客转载过来的。因为我现在也学XML,学习便Copy过来了。XMLSchema是用一套预先规定的XML元素和属性创建的,这些元素和属性定义了XML文档的结构和内容模式。XMLSchema规定XML文档实例的结构和每个元素/属性的数据类型。 为什么要用Schema DTD的局限性 1.DTD不遵守XML语法(写XML文档实例时候用一种语法,写DTD的时候用另外一种语法) 2.DTD数据类型有限(与数据库数据类型不一致) 3.DTD不可扩展 4.DTD不支持命名空间(命名冲突) .Schema的新特性 1.Schema基于XML语法 2.Schema可以用能处理XML文档的工具处理 3.Schema大大扩充了数据类型,可以自定义数据类型 4.Schema支持元素的继承—Object-Oriented’ 5.Schema支持属性组 一:Schema基础知识 1.Schema(模式):其作用与dtd一样,也是用于验证XML文档的有效性,只不过它提供了比dtd更强大的功能和更细粒度的数据类型,另外Schema还可以自定义数据类型。此外,Schema也是一个XML文件,而dtd则不是。 2.所有的schema文档,其根元素必须为schema。 3.Schema的文档结构
4.schema的数据类型 1.基本类型
2.扩展数据类型
3.数据类型的特性
二:schema的元素类型 1.schema元素: 作用:包含已经定义的schema 用法:<xs:schema> ?属性 –xmlns–targetNamespace
2.element元素作用:声明一个元素 属性:–name–type–ref–minOccurs–maxOccurs –substitutionGroup–fixed–default 示例:
作用:把一组元素声明组合在一起,以便它们能够一起被复合类型应用 ?属性:name/ref 示例: ?
作用:声明一个属性 ?属性:name/type/ref/use ?示例: ?
5.attributeGroup元素 作用:把一组属性声明组合在一起,以便可以被复合类型应用 .属性:name/ref .示例: ?
作用:定义一个简单类型,它决定了元素和属性值的约束和相关信息 .属性:name .内容:应用已经存在的简单类型,三种方式: –restrict→限定一个范围 –list→从列表中选择 –union→包含一个值的结合 1.子元素为:<xs:restriction>定义一个约束条件 2.子元素为:<xs:list>从一个特定数据类型的集合中选择定义一个简单类型元素 3.子元素为:<xs:union>从一个特定简单数据类型的集合中选择定义一个简单类型元素 示例:<xs:simpleTypename="roadbikesize"> ?
7.complexTyep类型
作用:定义一个复合类型,它决定了一组元素和属性值的约束和相关信息 ?属性:name ?示例: ?
simpleType元素和complexTyep类型的区别(重要)
simpleType类型的元素中不能包含元素或者属性。 ?当需要声明一个元素的子元素和/或属性时,用complexType; ?当需要基于内置的基本数据类型定义一个新的数据类型时,用simpleType。 8.simplecontent元素 作用:应用于complexType,对它的内容进行约束和扩展 9.choice元素 作用:允许唯一的一个元素从一个组中被选择 .属性:minOccurs/maxOccurs 10.sequence元素 作用:给一组元素一个特定的序列
Schema总结: Schema是另一种文档类型定义,它遵循XML的语言规范。 .Schema是可扩展的,支持命名空间; .Schema支持更多的数据类型与元素类型; .Schema用element声明元素,用attribute声明元素的属性; .Schema用simpleType定义简单类型,用complexType定义复杂类型。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |