Preface:本文是W3Schools上《Schema指南》的学习笔记。其中大部分内容是对指南的翻译总结。由于原文的例子更详尽生动,如果各位想阅读原文可以到这个网址http://www.w3schools.com/schema/default.asp。同时,W3Schools提供了测试,大家可以测试一下自己的理解程度。
首先简单的说一下,Schema中的简单类型(SimpleType)有三种:SimpleElement(简单元素)、Attribute(属性)和Restrictions(约束)。下面逐一介绍这几种类型。
一、XSD SimpleElement
所谓SimpleElement是指不包含任何其他元素和属性,只包含Text(元素间的内容)的元素。这里Text指代的不单单是文本(string),准确地说应该是数据,可以是Schema内置的数据类型的数据,也可以是我们自己创建的数据类型的数据。
定义一个SimpleElement
“xs:string ”、“xs:decimal”、“xs:integer”、“xs:boolean”、“xs:date”、“xs:time”。
看一个例子,以下是一些在XML中出现的SimpleElement
< age > 36 </ age >
< dateborn > 1970-03-27 </ dateborn >
< xs:element name ="age" type ="xs:integer" />
< xs:element name ="dateborn" type ="xs:date" />
Element的默认值和固定值
默认值是当Elment中没有指定一个值时默认提供的值,使用default属性给出。二、XSD Attribute
所有的Attribute都是作为简单类型的。一个SimpleElement是不能有属性的。如果一个Element包含有Attriute我们就认为它看作是一个复杂类型(Complex Type)。虽然Attribute不会单独的出现,但我们仍将它作为一种SimpleType在这里介绍
定义一个Attribute
例如有如下一个Element,包含一个Attribute
Attribute的默认值和固定值
同样可以使用default属性和fixed属性为Attrbute指定默认值和固定值。默认值
可选和必需属性
属性默认是可选的(即可以不填)可以使用use属性来指定属性是必需的,如下:
三、XSD Restrictions(约束)
Restrictions是用来限制(或者说定义)Element或Attribute可接受值的。而对于Element的Restrictions通常又称为Facets。
下面通过一些常见的约束例子来说明Restrictions的用法和语法。
数值型范围限制
< xs:restriction base ="xs:integer" >
< xs:minInclusive value ="0" />
< xs:maxInclusive value ="120" />
</ xs:restriction >
</ xs:simpleType ></ xs:element >
枚举限制
< xs:simpleType >
< xs:restriction base ="xs:string" >
< xs:enumeration value ="Audi" />
< xs:enumeration value ="Golf" />
< xs:enumeration value ="BMW" />
</ xs:restriction >
</ xs:simpleType >
</ xs:element >
可以使用另一种写法:
< xs:simpleType name ="carType" >
< xs:restriction base ="xs:string" >
< xs:enumeration value ="Audi" />
< xs:enumeration value ="Golf" />
< xs:enumeration value ="BMW" />
</ xs:restriction >
</ xs:simpleType >
使用正则表达式(RegularExpression)约束
< xs:simpleType >
< xs:restriction base ="xs:string" >
< xs:pattern value ="[a-z]" />
</ xs:restriction >
</ xs:simpleType >
</ xs:element >
空格字符(Whitespace Characters)约束
< xs:simpleType >
< xs:restriction base ="xs:string" >
< xs:whiteSpace value ="preserve" />
</ xs:restriction >
</ xs:simpleType >
</ xs:element >
当值为“replace”时
XML processer会用空间来代替所有的空格字符。
当值为“collapse”时
会将连续的空格合并成一个。
长度约束
< xs:simpleType >
< xs:restriction base ="xs:string" >
< xs:length value ="8" />
</ xs:restriction >
</ xs:simpleType >
</ xs:element >
更多的有关约束标签的参考,请查阅以下的网址:
http://www.w3schools.com/schema/schema_elements_ref.asp
本文为个人原创,转载请注明出自:http://jackma.cnblogs.com/
Author:JackMa