什么是Schema?

SQL ————————>XPath

数据库————————>XML文档数据	
表结构————————>Schema
XML Schema 是用一套预先规定的XML元素和属性创建的,这些元素和属性定义了XML文档的结构和内容模式。
XML Schema规则XML文档实例的结构和每个元素/属性的数据类型。

XML:

<书本>
	<名称>三国演义
	<作者>罗贯中

DTD:




Schema:



	
	

为何要Schema?

DTD的局限性:
  •   DTD不遵守XML语法(写XML文档实例时候用一种语法,写DTD的时候用另外一种语法)
    
  •   DTD数据类型有限(与数据库数据类型不一致)
    
  •   DTD不可扩展
    
  •   DTD不支持命名空间(命名冲突)
    

    Schema的新特性:

  •   Schema基于XML语法。
    
  •   Schema可以用能处理XML文档的工具处理。
    
  •   Schema大大扩充了数据类型,可以自定义数据类型。
    
  •   Schema支持元素的继承—Object-Oriented
    
  •   Schema支持属性组
    

Schema的文档结构







< /xs:schema>
  • 所有Schema文档使用schema作为其根元素
  • 用于构造schema的元素和数据类型来自http://www.w3.org/2001/XMLSchema 命名空间
  • 本schema定义的元素和数据类型属于http://mynamespace/myschema命名空间

Schema的数据类型

简单类型
  •   内置的数据数据类型(built-in data types)
    
  •   	基本的数据类型
    
  •   	扩展的数据类型
    
  •   用户自定义数据类型(通过simpleType定义)
    

    复杂类型(通过complexType定义)

Schema的数据类型-基本数据类型:

数据类型 描述
string 表示字符串
boolean 布尔型
decimal 代表特定精度的数字
float 表示单精度32位浮点数
double 表示双精度64位浮点数
duration 表示持续时间
time 代表特定的时间
date 代表特定的时间,但是是每天重复的
hexBinary 代表日期
anyURI 代表一个URI,用来定位文件
NOTATION 代表NOTATION类型

Schema的数据类型—扩展的数据类型:

数据类型 描述
ID 用于唯一标识元素
IDREF 参考ID类型的元素或属性
ENTITY 实体类型
NMTOKEN NMTOKEN类型
NMTOKENS NMTOKEN类型集
long 表示整型数,大小介于-9223372036854775808和9223372036854775807之间
int 表示整型数,大小介于-2147483648和2147483647之间
short 表示整型数,大小介于-32768和32767之间
byte 表示整型数,大小介于-128和127之间

Schema的数据类型—数据类型的特性

特性 描述
enumeration 在指定的数据集中选择,限定用户的选值
fractionDigits 限定最大的小数位,用于控制精度
length 指定数据的长度
maxExclusive 指定数据的最大值(小于)
maxInclusive 指定数据的最大值(小于等于)
maxLength 指定长度的最大值
minExclusive 指定最小值(小于)
minInclusive 指定最小值(小于等于)
minLength 指定最小长度
Pattern 指定数据的显示规范

element元素:

作用:声明一个元素

属性:

name
type
ref
minOccurs
maxOccurs
substitutionGroup
fixed
default

示例:




	< xs:complexType>
		
			
			
		< /xs:sequence>
	< /xs:complexType>
< /xs:element>

group元素:

作用:把一组元素声明组合在一起,以便它们能够一起被复合类型引用

属性:name/ref

示例:


	
	
	
		< xs:sequence>
			
			
		< /xs:sequence>
	< /xs:group>
	
		
		
	< /xs:complexType>

attributeGroup 元素:

作用:把一组属性声明组合在一起,以便可以被符合类型引用

属性:name/ref

示例:


	
	
< /xs:attributeGroup>

	
< /xs:complexType>

你可能感兴趣的:(Web,Service)