`
xianglachigen
  • 浏览: 11448 次
社区版块
存档分类
最新评论

黑马程序员——XML Schema总结

阅读更多
android培训java培训、期待与您交流! 


XML Schema
学习总结

简单类型

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


格式:
<xs:element name="xxx" type="yyy"/>

例子:
<xs:element name="name" type="xs:string"/>
<xs:element name="age" type="xs:integer"/>
<xs:element name="gender" type="xs:boolean"/>

2
、属性
:所有的元素属性均被声明为简单类型。只有复杂类型的元素才可以拥 有属性。
格式:
<xs:attribute name="xxx" type="yyy"/>
例子:
<xs:attribute name="lang" type="xs:string"/>
所有的属性默认都是可选的,我们可以通过使用use关键字明确的指出是可选或是必需:
<xs:attribute name="lang" type="xs:string" use="optional"/>
<xs:attribute name="lang" type="xs:string" use="required"/>
我们可以通过使用default或fixed为简单类型(简单元素、属性)指定默认值 或固定值,
如下:
<xs:element name="color" type="xs:string" default="red"/>
<xs:attr
ibute name="lang" type="xs:string" fixed="CN"/>
对简单类型值的约束 约束 含义
enumeration
定义允许值的枚举
fractionDigits
指定最多允许的小数位数(必须大于或等于零)
length
精确指定允许的最大字符长度
maxExclusive
指定允许的最大数值,必须小于该值
maxInclusive
指定允许的最大数值,必须小于或
等于该值
maxLength
指定允许的最大字符长度(必须大
于等于零)
minExclusive
指定允许的最小数值,必须大于该值
minInclusive
指定允许的最小数值,必须大于或等于该值
minLength
指定允许的最小字符长度
pattern
指定允许值的模式,类似正则表达

totalDigits 精确指定数字个数
whiteSpace
处理空白(保留:preserve;替换:
replace;合并:collapse)
复杂类型
复杂类型指包含其他元素
/
属性的元素类型。
<message>
<to>rose</to>
<from>alex</from>
<body>Hi,My Girl!</body>
</message>
在上面的例子中,元素message就是一个复杂类型的元素,我们在Schema 中这样描述:
<xs:element name="message">
<xs:complexType>
<xs:sequence>
<xs:element name="to" type="xs:string"/>
<xs:element name="from" type="xs:string"/>
<xs:element name="body" type="xs:string"/>
</xs:sequence>
</xs:complexType>
注意元素to,from,body包含在<xs:sequence></xs:sequence>
中,表明 这些元素必须按照定义的顺序出现在你的XML文件中。 当然,message元素也可以包含一个type属性,指向我们定义的复杂类型, 象这样:
<xs:element name="message" type="msg"/>
<xs:complexType name="msg">
<xs:sequence>
<xs:element name="to" type="xs:string"/>
<xs:element name="from" type="xs:string"/>
<xs:element name="body" type="xs:string"/>
</xs:sequence>
</xs:complexType>

杂类型和简单类型之间最根本的区别就是:复杂类型的内容中可以包含其他 元素,也可以带有属性(Attribute)但简单类型既不能包含子元素,也不能 带有任何属性。
Schema综述
1
、如何描述空元素
,比如:
<product prodid="1345" />?
因为是空元素,所以不包含子元素,同时由于包含属性,用attribute定义,象 这样:
xs:element name="product">
<xs:complexType>
<xs:attribute name="prodid" type="xs:positiveInteger"/>
</xs:complexType>
</xs:element>
也可以这样:
<xs:element name="product" type="productType"/>
<xs:complexType name="productType">
<xs:attribute name="prodid" type="xs:positiveInteger"/>
</xs:complexType>
2、如何描述只含有简单内容(文本/
属性)的元素,比如:
<message date="200606-26">Hi,My Girl!</message>?
于只包含简单内容,所以我们在元素内容定义的外面用simpleContent 指
出,当描述简单内容的时候,我们需要在简单内容里使用extension或者 restriction来描述内容的数据类型。象这样:
<xs:element name="message">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="date" type="xs:date" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:elem
ent>
其中message的属性date的数据类型为日期(xs:date)。
顺便提一下:XML Schema中常用的数据类型有:
xs:string 、xs:decimal 、xs:integer 、xs:boolean 、xs:date 、xs:time 等。
3、如何定义混合类型,比如:
<message>
This message comes from <from>Alex</from>
</message>
message元素除了包含子元素from之外,还直接包含文本“This message comes from”。对于这种情况,我们需要在complexType中使用属性
mixed="true"指出。以下是Schema:
<xs:element name="message">
<xs:complexType mixed="true">
<xs:element name="from" type="xs:string"/>
</xs:complexType>
</xs:element>
当然,如果包含更多的子元素,我们可以需要使用<xs:sequence>来限定那些 子元素的顺序。 在XML Schema中,有3类共7种指示器(Indicator):
一、定义元素如何出现:包括
all,sequence,choice 这三个。
1、all:默认值。不限制子元素的出现顺序,每个子元素必须出现且只能出现一 次。例如:
<xs:element name="person">
<xs:complexType>
<xs:all>
<xs:element name="firstname"
type="xs:string"/>
<xs:element name="lastname" type="xs:string"/>
</xs:all>
</xs:complexType>
</xs:element>
2、sequence:子元素在XML文件中按照XML Schema定义的顺序出现。
3、choice:两个或多个子元素中仅出现一个。例如:
<xs:element name="gender">
<xs:complexType>
<xs:choice>
<xs:element name="male" type="male"/>
<xs:element name="female" type="female"/>
</xs:choice>
</xs:complexType>
</xs:element>
二、次数限定类,包括minOccurs和maxOccurs,前者指定最少出现次数, 后者指定最多出现次数。例如:
<xs:element name="person">
<xs:complexType>
<s:sequence>
<xs:e
lement name="full_name" type="xs:string"/>
<xs:element name="child_name" type="xs:string"
maxOccurs="10" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
如果元素出现的最大次数无限制,可以使用
maxOccurs="unbounded"。
三、组限定:包括Group和attributeGroup,用来定义一组相关的元素。比 如:
<xs:group name="persongroup">
<xs:sequence>
<xs:element name="firstname" type="xs:string"/>
<xs:element name="lastname" type="xs:string"/>
<xs:element name="birthday" type="xs:date"/>
</xs:sequence>
</x
s:group>
<xs:attributeGroup name="personattrgroup">
<xs:attribute name="firstname" type="xs:string"/>
<xs:attribute name="lastname" type="xs:string"/>
<xsattribute name="birthday"
type="xs:date"/>
</xs:attributeGroup>
补充:any>和<anyAttribute> ,在XML Schema中使用这两个元素可以放宽SchemaXM文件内容的限制。容许我们在XML文件中使用没有在
Schema中定义的元素和属性。(很少使用) 元素属性substitutionGroup可以让元素b替换元素a在XML文件中出现。
比如:

<xs:element name="cn_name" type="xs:string"/>
<xs:elemen
t name="en_name" substitutionGroup="cn_name"/>
这种情形类似Choice:
<xs:choice>
<xs:element name="cn_name" type="xs:string"/>
<xs:element name="en_name" type="xs:string"/>
</xs:choice>

---------------------- android培训java培训、期待与您交流! ----------------------

详细请查看:http://edu.csdn.net/heima
分享到:
评论

相关推荐

    XML与XMLSchema

    XML发展历史概述 XML文档组成元素 XML Schema组成元素 XML相关API

    理解XML Schema XML Schema进阶

    理解XML Schema XML Schema进阶

    Java Web开发详解:XML+DTD+XML Schema+XSLT+Servlet3.0+JSP2.2深入剖析与实例应用/孙鑫编著

    《Java Web开发详解——XML+DTD+XML Schema+XSLT+Servlet3.0+JSP2.2深入剖析与实例应用》不仅可以作为Java Web开发的学习用书,还可以作为从事Java Web开发的程序员的参考用书和必备手册。 此外,《Java Web开发详解...

    XML Schema简明教程-W3C.rar

    XML Schema 是基于 XML 的 DTD 替代者。 XML Schema 描述 XML 文档的结构。 XML Schema 语言也称作 XML Schema 定义(XML Schema Definition,XSD)。 在此教程中,你将学习如何在应用程序中读取和创建 XML ...

    XML Schema教程

    XML Schema 教程 XML Schema 是基于 XML 的 DTD 替代者。 XML Schema 描述 XML 文档的结构。 XML Schema 语言也称作 XML Schema 定义(XML Schema Definition,XSD)。 在此教程中,你将学习如何在应用程序中读取和...

    xmlschema-core-2.1.0-API文档-中文版.zip

    赠送jar包:xmlschema-core-2.1.0.jar; 赠送原API文档:xmlschema-core-2.1.0-javadoc.jar; 赠送源代码:xmlschema-core-2.1.0-sources.jar; 赠送Maven依赖信息文件:xmlschema-core-2.1.0.pom; 包含翻译后的API...

    XmlSchema-1.4.7 jar包

    好不容易找到的XmlSchema-1.4.7 jar包,需要的同学速度下载吧。不黑心,只要1分~~~

    XmlSchema-1.1.jar

    XmlSchema-1.1.jar XmlSchema-1.1.jar

    xmlschema-core-2.0.3.jar

    xmlschema-core-2.0.3.jar;xmlschema-core-2.0.3.jar;xmlschema-core-2.0.3.jar

    XML文件XML Schema.docXML Schema.doc

    XML文件XML Schema.docXML Schema.doc

    XmlSchema-1.2.jar,xmlschema-1.2.jar,xml.jar

    XmlSchema-1.2.jar,xmlschema-1.2.jar,xml.jar

    xmlschema-core-2.0.jar

    cxf jar xmlschema-core-2.0.jar

    XmlSchema标准参考手册.chm

    XML Schema是以XML语言为基础的,它用于可替代DTD。 一份XML schema文件描述了XML文档的结构。 XML Schema语言也被称为XML Schema Definition (XSD)(XML Schema定义). --------------------------------------...

    一个简单的XML Schema的例子

    Schema相对于DTD的明显好处是XML Schema文档本身也是XML文档,而不是像DTD一样使用自成一体的语法。这就方便了用户和开发者,因为可以使用相同的工具来处理XML Schema和其他XML信息,而不必专门为Schema使用特殊工具...

    XML - 实验(2) -- Schema

    《XML》实验任务书 【2】 XML Schema [实验目的] 1、学习如何使用XMLSPY集成开发环境完成XML Schema相关的开发工作。 2、掌握XML Schema与DTD之间的区别,能够完成两者之间的转换;掌握在XML Schema中如何定义元素...

    西工大服务计算实验2-1_XML Schema

    编写程序,输出一个与XML Schema 相符合的 XML文档。

    XmlSchema-1.4.7.jar

    XmlSchema-1.4.7.jar 最新的,免费!

    XML Schema 教程(word版本)

    XML Schema 是基于 XML 的 DTD 替代者。 XML Schema 描述 XML 文档的结构。 XML Schema 语言也称作 XML Schema 定义(XML Schema Definition,XSD)。 在此教程中,你将学习如何在应用程序中读取和创建 XML ...

    XML Schema xsd XML Schema xsd

    XML Schema xsdXML Schema xsdXML Schema xsdXML Schema xsd

Global site tag (gtag.js) - Google Analytics