黑马程序员——XML Schema总结

[url=http://edu.csdn.net/heima]android培训[/url]、[url=http://edu.csdn.net/heima]java培训[/url]、期待与您交流!


XML Schema
学习总结

简单类型

1
、简单元素
:指只能包含文本内容,不能够包含子元素,也没有属性的元素。


格式:


例子:




2
、属性
:所有的元素属性均被声明为简单类型。只有复杂类型的元素才可以拥 有属性。
格式:

例子:

所有的属性默认都是可选的,我们可以通过使用use关键字明确的指出是可选或是必需:


我们可以通过使用default或fixed为简单类型(简单元素、属性)指定默认值 或固定值,
如下:

ibute name="lang" type="xs:string" fixed="CN"/>
对简单类型值的约束 约束 含义
enumeration
定义允许值的枚举
fractionDigits
指定最多允许的小数位数(必须大于或等于零)
length
精确指定允许的最大字符长度
maxExclusive
指定允许的最大数值,必须小于该值
maxInclusive
指定允许的最大数值,必须小于或
等于该值
maxLength
指定允许的最大字符长度(必须大
于等于零)
minExclusive
指定允许的最小数值,必须大于该值
minInclusive
指定允许的最小数值,必须大于或等于该值
minLength
指定允许的最小字符长度
pattern
指定允许值的模式,类似正则表达

totalDigits 精确指定数字个数
whiteSpace
处理空白(保留:preserve;替换:
replace;合并:collapse)
复杂类型
复杂类型指包含其他元素
/
属性的元素类型。

rose
alex
Hi,My Girl!

在上面的例子中,元素message就是一个复杂类型的元素,我们在Schema 中这样描述:








注意元素to,from,body包含在
中,表明 这些元素必须按照定义的顺序出现在你的XML文件中。 当然,message元素也可以包含一个type属性,指向我们定义的复杂类型, 象这样:









杂类型和简单类型之间最根本的区别就是:复杂类型的内容中可以包含其他 元素,也可以带有属性(Attribute)但简单类型既不能包含子元素,也不能 带有任何属性。
Schema综述
1
、如何描述空元素
,比如:

因为是空元素,所以不包含子元素,同时由于包含属性,用attribute定义,象 这样:
xs:element name="product">




也可以这样:




2、如何描述只含有简单内容(文本/
属性)的元素,比如:
Hi,My Girl!
于只包含简单内容,所以我们在元素内容定义的外面用simpleContent 指
出,当描述简单内容的时候,我们需要在简单内容里使用extension或者 restriction来描述内容的数据类型。象这样:








ent>
其中message的属性date的数据类型为日期(xs:date)。
顺便提一下:XML Schema中常用的数据类型有:
xs:string 、xs:decimal 、xs:integer 、xs:boolean 、xs:date 、xs:time 等。
3、如何定义混合类型,比如:

This message comes from Alex

message元素除了包含子元素from之外,还直接包含文本“This message comes from”。对于这种情况,我们需要在complexType中使用属性
mixed="true"指出。以下是Schema:





当然,如果包含更多的子元素,我们可以需要使用来限定那些 子元素的顺序。 在XML Schema中,有3类共7种指示器(Indicator):
一、定义元素如何出现:包括
all,sequence,choice 这三个。
1、all:默认值。不限制子元素的出现顺序,每个子元素必须出现且只能出现一 次。例如:



type="xs:string"/>




2、sequence:子元素在XML文件中按照XML Schema定义的顺序出现。
3、choice:两个或多个子元素中仅出现一个。例如:








二、次数限定类,包括minOccurs和maxOccurs,前者指定最少出现次数, 后者指定最多出现次数。例如:



lement name="full_name" type="xs:string"/>
maxOccurs="10" minOccurs="0"/>



如果元素出现的最大次数无限制,可以使用
maxOccurs="unbounded"。
三、组限定:包括Group和attributeGroup,用来定义一组相关的元素。比 如:






s:group>



type="xs:date"/>

补充:any>和 ,在XML Schema中使用这两个元素可以放宽SchemaXM文件内容的限制。容许我们在XML文件中使用没有在
Schema中定义的元素和属性。(很少使用) 元素属性substitutionGroup可以让元素b替换元素a在XML文件中出现。
比如:


t name="en_name" substitutionGroup="cn_name"/>
这种情形类似Choice:





---------------------- [url=http://edu.csdn.net/heima]android培训[/url]、[url=http://edu.csdn.net/heima]java培训[/url]、期待与您交流! ----------------------

详细请查看:[url=http://edu.csdn.net/heima]http://edu.csdn.net/heima[/url]

你可能感兴趣的:(学习日记)