第9章 XML Schema模式簡介_第1頁
第9章 XML Schema模式簡介_第2頁
第9章 XML Schema模式簡介_第3頁
第9章 XML Schema模式簡介_第4頁
第9章 XML Schema模式簡介_第5頁
已閱讀5頁,還剩75頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

第9章XMLSchema模式簡介1章節(jié)結(jié)構(gòu)9.1什么是XMLSchema9.2XMLSchema中的標(biāo)記9.3XMLSchema模式的驗(yàn)證9.4簡單類型元素9.5復(fù)雜類型元素9.6屬性XMLSchemaXMLSchema概念XML標(biāo)記包含的內(nèi)容可以有文本數(shù)據(jù)和標(biāo)記組成,模式就是為了限制標(biāo)記應(yīng)當(dāng)包含怎樣的文本內(nèi)容和子標(biāo)記。XSD(XMLschemadefinition),本身也是一個(gè)XML文檔,用于描述另一個(gè)XML文檔如果被描述的XML文檔符合schema中的XML描述,那么就可以說它是該schema的一個(gè)有效實(shí)例XMLSchema語言有兩種模型:Microsoft開發(fā)的MicrosoftXMLSchemaMicrosoftXMLSchema已經(jīng)開發(fā)成熟并運(yùn)用到實(shí)際W3C開發(fā)的W3CXMLSchema。最為正式的XMLSchema語言是由W3C指定的XMLSchema規(guī)范,簡稱為XSD(XMLSchemaDefinition)。xsd也提供了數(shù)據(jù)類型的支持和結(jié)構(gòu)定義的方法。XMLSchema的標(biāo)準(zhǔn)共分為3個(gè)部分:第一部分為引導(dǎo)(primer),是對Schema的總體介紹,其目的是幫助讀者快速理解如何使用Schema語法創(chuàng)建Schema文檔第二部分為結(jié)構(gòu)(structure),是為描述XML1.0文檔結(jié)構(gòu)和內(nèi)容約束提供了文檔定義第三部分是數(shù)據(jù)類型(datatypes),為Schema及其他XML規(guī)范定義了數(shù)據(jù)類型,讓用戶定義出更明確的類型DTD與XMLSchemaDTD的優(yōu)點(diǎn)與不足DTD優(yōu)點(diǎn):相對簡單,語法緊湊,而且廣泛地為XML實(shí)現(xiàn)者理解和支持;如果設(shè)計(jì)得當(dāng),它可以是高度模塊化的、靈活的和可擴(kuò)展的。DTD不足:它采用獨(dú)有的非XML語法,僅提供非常有限的、僅適用于屬性的數(shù)據(jù)類型DTD與Schema不同之處與DTD的結(jié)構(gòu)不同:Schema本身是一XML文檔支持命名空間:XML文檔只能引用一份DTD多樣化的數(shù)據(jù)類型:Schema中類型豐富。如布爾型、數(shù)字、日期和時(shí)間、URI、整型、小數(shù)、實(shí)數(shù)以及時(shí)間間隔高度擴(kuò)充性:只要設(shè)置XMLSchema中的模式屬性為open,可以加上未被定義的新元素Schema作用Schema文檔用來驗(yàn)證XML文檔的正確性,用來判斷實(shí)例是否符合模式中所描述的所有約束,涉及到檢查實(shí)例中所有的元素和屬性。Schema主要檢驗(yàn)如下內(nèi)容:驗(yàn)證數(shù)據(jù)的顯示格式是否正確及是否超出值的范圍;驗(yàn)證所有必需的信息都存在;確保不同使用者對文檔理解的方式相同。除了對XML文檔的驗(yàn)證外,Schema文檔還在一定程度上擴(kuò)充實(shí)例:為元素和屬性添加默認(rèn)值和固定值;使具有簡單類型的元素和屬性值中的空白符規(guī)范化。XMLSchema與命名空間編寫XMLSchema時(shí),必須引用一個(gè)命名空間一般是/2001/XMLSchema<?xmlversion="1.0"encoding="UTF-8"?><xs:schemaxmlns:xs="/2001/XMLSchema"> <xs:elementname="RootElement"> <xs:annotation> <xs:documentation>Thisisasample</xs:documentation> </xs:annotation> </xs:element></xs:schema>Schema的引用要驗(yàn)證XML文檔,必須指定Schema文檔的位置。模式的位置可以利用帶有名稱空間模式的xsi:schemaLocation屬性以及不帶名稱空間XML模式的xsi:noNamespaceSchemaLocation屬性來指定,它們位于根/頂級元素中或XML文檔的任何其他元素中。Schema的引用code.xsd<?xmlversion="1.0"encoding="gb2312"?><xsd:schemaxmlns:xsd="/2001/XMLSchema"xmlns="/ord"targetNamespace="/ord"><xsd:includeschemaLocation="moreBookInfo.xsd"/><xsd:importnamespace="/ord"schemaLocation="publish.xsd"/><!--…--></xsd:schema>指明xsd文件中預(yù)定義的元素、屬性和數(shù)據(jù)類型的來源

eg1.xml<?xmlversion="1.0"encoding="gb2312"?><bookxmlns:xsi="/2001/XMLSchema-instance"xsi:noNamespaceSchemaLocation="books.xsd"isbn="0-764-58007-8"><!--…--></book>noNamespaceSchemaLocation屬性來指定XML文檔的schemaXMLSchema的結(jié)構(gòu)XMLSchema的基本架構(gòu)也是一個(gè)樹狀的XML結(jié)構(gòu)根元素名稱一定是<Schema>元素根元素下面聲明其他元素XSD文檔至少要包括以下幾部分:Schema根元素和XML模式命名空間的定義Element定義關(guān)于書籍信息的XML文檔,代碼如源程序2.xml所示。

<?xmlversion="1.0"encoding="gb2312"?><bookisbn="0-764-58007-8"><title>三國演義</title><author>羅貫中</author><price>80.00</price><resume>滾滾長江東逝水,浪花淘盡英雄。是非成敗轉(zhuǎn)頭空。青山依舊在,幾度夕陽紅。白發(fā)漁樵江渚上,慣看秋月春風(fēng)。一壺濁酒喜相逢。古今多少事,都付笑談中。</resume><recommendation>經(jīng)典好書</recommendation><publish><publisher>文藝出版社</publisher><pubdate>1998.10</pubdate></publish></book>13Eg.關(guān)于書籍信息模式定義的完整例子,代碼如源程序2.xsd所示。

<?xmlversion="1.0"encoding="gb2312"?><xsd:schemaxmlns:xsd="/2001/XMLSchema"><xsd:elementname="book"><xsd:complexType><xsd:sequence><xsd:elementname="title"type="xsd:string"/><xsd:elementname="author"type="xsd:string"/><xsd:elementname="price"type="xsd:decimal"/><xsd:elementname="resume"type="xsd:string"/><xsd:elementname="recommendation"type="xsd:string"/><xsd:elementname="publish"minOccurs="0"maxOccurs="unbounded"><xsd:complexType><xsd:sequence><xsd:elementname="publisher"type="xsd:string"/><xsd:elementname="pubdate"type="xsd:date"/></xsd:sequence></xsd:complexType>14Eg.關(guān)于書籍信息模式定義的完整例子,代碼如源程序2.xsd所示。

</xsd:element></xsd:sequence><xsd:attributename="isbn"type="xsd:string"/></xsd:complexType></xsd:element></xsd:schema>15Eg.引用2.xsd文件來驗(yàn)證的2-1.xml<?xmlversion="1.0"encoding="UTF-8"?><bookxmlns:xsi="/2001/XMLSchema-instance"xsi:noNamespaceSchemaLocation="2.xsd"

isbn="0-764-58007-8"><title>三國演義</title><author>羅貫中</author><price>80.00</price><resume>滾滾長江東逝水,浪花淘盡英雄。是非成敗轉(zhuǎn)頭空。青山依舊在,幾度夕陽紅。白發(fā)漁樵江渚上,慣看秋月春風(fēng)。一壺濁酒喜相逢。古今多少事,都付笑談中。</resume><recommendation>經(jīng)典好書</recommendation><publish><publisher>文藝出版社</publisher><pubdate>1998-10-01</pubdate></publish></book>16<Schemaelement>

<simpletypeelement/>

<complextypeelement>

<complexType>

<sequence> <simpletypeelement/> <simpletypeelement/> </sequence><attribute/> </complexType>

</complextypeelement></Schemaelement>17XMLSchema的結(jié)構(gòu)圖<Schemaelement>

<simpletypeelement/>

<complextypeelement>

<complexType>

<all> <simpletypeelement/> <simpletypeelement/> </all><attribute/> </complexType>

</complextypeelement></Schemaelement>18XMLSchema的結(jié)構(gòu)圖schema在schema文檔中必須定義一個(gè)且只能定義一個(gè)schema根元素。根元素表明了文檔類型根元素還包括模式的約束、XML模式名稱空間的定義,其他名稱空間的定義、版本信息、語言信息和其他一些屬性。定義如下:19<?xmlversion="1.0"encoding="gb2312"?><xsd:schemaname="mySchema"xmlns:xsd="/2001/XMLSchema">…</xsd:schema>元素的聲明語法:<elementname=“元素名稱”type=“元素的類型名稱”/>其中,name是元素類型的名稱,必須是以字母或下劃線開頭,而且只能夠包含字母、數(shù)字、下劃線、連接符及句號。type屬性是必要的,說明元素的數(shù)據(jù)類型。XSD中的元素是利用element來聲明的。其中name屬性是元素的名字,type屬性是元素值的類型,在這里可以是XMLSchema中內(nèi)置的數(shù)據(jù)類型或其他類型。20eg3:213.xsd<xsd:schemaxmlns:xsd="/2001/XMLSchema"><xsd:elementname="author"type="xsd:string"/></xsd:schema>3.xml<?xmlversion="1.0"encoding="UTF-8"?><authorxmlns:xsi="/2001/XMLSchema-instance"xsi:noNamespaceSchemaLocation="3.xsd">羅貫中</author>Attribute定義屬性的方法如下:<attributename=“屬性名”type=“屬性類型”></attribute>eg4.22<blankbase="16“></blank>4.xml<xs:schemaxmlns:xs="/2001/XMLSchema"><xs:elementname="blank"><xs:complexType>

<xs:attributename="base"type="xs:integer"use="optional"default="10"/></xs:complexType></xs:element></xs:schema>4.xsd元素類型分為:簡單類型簡單數(shù)據(jù)類型的元素不能加入子元素,不可加入任何屬性,即簡單數(shù)據(jù)類型的元素適于存放無附加信息的數(shù)據(jù)和葉子元素簡單數(shù)據(jù)類型有布爾、日期、整數(shù)、浮點(diǎn)數(shù)與字符串類型等復(fù)雜類型復(fù)雜數(shù)據(jù)類型由簡單數(shù)據(jù)類型組合而成,可再包含其他復(fù)雜數(shù)據(jù)類型、簡單數(shù)據(jù)類型及屬性說明23簡單類型語法:<elementname=“元素名稱”type=“數(shù)據(jù)類型”minOccurs=“元素個(gè)數(shù)下限”maxOccurs=“元素個(gè)數(shù)上限”“默認(rèn)值”fixed=“固定值”>每個(gè)簡單類型元素有一個(gè)name屬性對應(yīng)要驗(yàn)證的XML元素的名稱XML元素的數(shù)據(jù)類型是通過type屬性進(jìn)行設(shè)置元素出現(xiàn)的個(gè)數(shù)使用minOccurs、maxOccurs設(shè)置下、上限;這兩個(gè)屬性具有可選擇性24內(nèi)建數(shù)據(jù)類型25高級的簡單類型賦予簡單類型元素更多變化輔助元素有26<restriction>元素040206a.XSD<?xmlversion="1.0"encoding="UTF-8"?><xsd:schemaxmlns:xsd="/2001/XMLSchema"><xsd:elementname="AnswerTime"type="AnsTimeRange"/><xsd:simpleTypename="AnsTimeRange"><xsd:restrictionbase="xsd:float"><xsd:minInclusivevalue="30"/><xsd:maxInclusivevalue="60"/></xsd:restriction></xsd:simpleType></xsd:schema>27040206a.xml<?xmlversion="1.0"encoding="UTF-8"?><AnswerTimexmlns:xsi="/2001/XMLSchema-instance"xsi:noNamespaceSchemaLocation="04_02_06a.xsd">60</AnswerTime><Union>元素28040206b.xsd<?xmlversion="1.0"encoding="UTF-8"?><xsd:schemaxmlns:xsd="/2001/XMLSchema"><xsd:elementname="Level"> <xsd:simpleType><xsd:union>

<xsd:simpleType> <xsd:restrictionbase="xsd:float"> <xsd:minInclusivevalue="1"/> <xsd:maxInclusivevalue="5"/> </xsd:restriction></xsd:simpleType><xsd:simpleType> <xsd:restrictionbase="xsd:string"> <xsd:maxLengthvalue="1"/> <xsd:patternvalue="[A-E]"/> </xsd:restriction> </xsd:simpleType>

</xsd:union></xsd:simpleType></xsd:element></xsd:schema>040206b.xml<?xmlversion="1.0"encoding="UTF-8"?><Levelxmlns:xsi="/2001/XMLSchema-instance"xsi:noNamespaceSchemaLocation="04_02_06b.xsd">E</Level>29<list>元素04.02.06c.xsd<?xmlversion="1.0"encoding="UTF-8"?><xsd:schemaxmlns:xsd="/2001/XMLSchema"><xsd:elementname="Interests"type="InterestList"/><xsd:simpleTypename="InterestList"><xsd:listitemType="xsd:string"/></xsd:simpleType></xsd:schema>3004.02.06c.xml會員的興趣資料<?xmlversion="1.0"encoding="UTF-8"?><Interestsxmlns:xsi="/2001/XMLSchema-instance"xsi:noNamespaceSchemaLocation="04_02_06c.xsd">SportReadingShopping</Interests>31<enumeration>元素04.02.06d.xsd<?xmlversion="1.0"encoding="UTF-8"?><xsd:schemaxmlns:xsd="/2001/XMLSchema"><xsd:elementname="Bloods"type="BloodList"/><xsd:simpleTypename="BloodList"><xsd:restrictionbase="xsd:string"><xsd:enumerationvalue="O"/><xsd:enumerationvalue="A"/><xsd:enumerationvalue="B"/><xsd:enumerationvalue="AB"/></xsd:restriction></xsd:simpleType></xsd:schema>3204.02.06d.xml<?xmlversion="1.0"encoding="UTF-8"?><Bloodsxmlns:xsi="/2001/XMLSchema-instance"xsi:noNamespaceSchemaLocation="04_02_06d.xsd">AB</Bloods>33<pattern>元素04.02.06e.xsd<?xmlversion="1.0"encoding="UTF-8"?><xsd:schemaxmlns:xsd="/2001/XMLSchema"><xsd:elementname="UniqueID"type="IDType"/><xsd:simpleTypename="IDType"><xsd:restrictionbase="xsd:string"><xsd:maxLengthvalue="10"/><xsd:patternvalue="[A-Z][0-9]*"/></xsd:restriction></xsd:simpleType></xsd:schema>3404.02.06e.xml<?xmlversion="1.0"encoding="UTF-8"?><UniqueIDxmlns:xsi="/2001/XMLSchema-instance"xsi:noNamespaceSchemaLocation="04_02_06e.xsd">A123456789</UniqueID>354.2.8復(fù)雜類型復(fù)雜型元素主要是由用戶自行定義、組合以創(chuàng)造出合適的元素基本聲明語法:<elementname=“元素名稱”type=“自定義的類型名稱”/><complexTypename=“自定義的類型名稱”><sequence><element子元素聲明></sequence></complexType>36040208.XSD<?xmlversion="1.0"encoding="UTF-8"?><xsd:schemaxmlns:xsd="/2001/XMLSchema"> <xsd:elementname="Book"type="BookType"/> <xsd:complexTypename="BookType"> <xsd:sequence> <xsd:elementname="Title"type="xsd:string"/> <xsd:elementname="Author"type="xsd:string"/> </xsd:sequence> </xsd:complexType></xsd:schema>37一個(gè)具有BookType數(shù)據(jù)類型的Book元素BookType數(shù)據(jù)類型由兩個(gè)簡單類型元素Title和Author構(gòu)成,這兩個(gè)元素都是字符串類型參照聲明方式語法:<element簡單類型元素聲名A><element簡單類型元素聲名B><elementname=“元素名稱”type=“自定義的類型名稱”/><complexTypename=“自定義的類型名稱”><sequence><elementref=“簡單類型元素聲名A的名稱”><elementref=“簡單類型元素聲名B的名稱”></sequence></complexType>38040208a.XSD<?xmlversion="1.0"encoding="UTF-8"?><xsd:schemaxmlns:xsd="/2001/XMLSchema"> <xsd:elementname="Title"type="xsd:string"/> <xsd:elementname="Author"type="xsd:string"/> <xsd:elementname="Book"type="BookType"/> <xsd:complexTypename="BookType"> <xsd:sequence> <xsd:elementref="Title"/> <xsd:elementref="Author"/> </xsd:sequence> </xsd:complexType></xsd:schema>39參照法可以提高元素的重復(fù)使用性,讓多個(gè)元素同時(shí)共享<Title>和<Author>元素的設(shè)置040208d.XSD<?xmlversion="1.0"encoding="UTF-8"?><xsd:schemaxmlns:xsd="/2001/XMLSchema"> <xsd:elementname="Title"type="xsd:string"/> <xsd:elementname="Author"type="xsd:string"/> <xsd:elementname="Book"type="BookType"/> <xsd:complexTypename="BookType"> <xsd:sequence>

<xsd:elementref="Title"/> <xsd:elementref="Author"/> </xsd:sequence> </xsd:complexType> <xsd:elementname="Magazine"type="MagazineType"/> <xsd:complexTypename="MagazineType"> <xsd:sequence>

<xsd:elementref="Title"/> <xsd:elementref="Author"/> </xsd:sequence> </xsd:complexType></xsd:schema>404.2.9為復(fù)雜類型元素加入屬性只有復(fù)雜類型元素可以加屬性,簡單類型元素不允許加屬性本身須為簡單類型為復(fù)雜類型元素加入屬性的語法:<elementname=“元素名稱”type=“自定義的類型名稱”/><complexTypename=“自定義的類型名稱”><attributename=“屬性名稱”type=“屬性類型”use='optional|prohibited|required‘/>

</complexType>聲明屬性元素時(shí),一定要設(shè)置屬性名稱和屬性類型Required屬性決定該屬性是否一定要填入數(shù)據(jù),有yes和no兩種41040209.xsd<?xmlversion="1.0"encoding="UTF-8"?><xsd:schemaxmlns:xsd="/2001/XMLSchema"> <xsd:elementname="sex"type="sexType"/> <xsd:simpleTypename="sexType"> <xsd:restrictionbase="xsd:string"> <xsd:enumerationvalue="male"/> <xsd:enumerationvalue="female"/> </xsd:restriction> </xsd:simpleType> <xsd:elementname="Member"> <xsd:complexType> <xsd:attributename="merberid"type="xsd:positiveInteger"use="required"/> <xsd:attributename="sex"type="sexType"/> </xsd:complexType> </xsd:element></xsd:schema>42<xs:schemaxmlns:xs="/2001/XMLSchema"><xs:complexTypename="personType"><xs:sequence><xs:elementname="name"type="string"/><xs:elementname="id"type="xs:integer"/></xs:sequence><xs:attributename="criminal"type="xs:boolean"use="optional"/></xs:complexType><xs:elementname="person"type="personType"/></xs:schema>43ElementDeclarationforanelementwithsubelementsandattribute.44<personcriminal="true"><name>John</name><id>42</id></person><person><name>Susan</name><id>27</id></person><person><id>27</id><name>Susan</name></person><personfriend="true"><name>John</name><id>42</id></person>?小結(jié)45本講介紹了XML中的名稱空間:為了使應(yīng)用程序能區(qū)分Internet上的XML中同名的不同標(biāo)記,XML使用了名稱空間。名稱空間由前綴和URI兩部分組成,其中真正使同名標(biāo)記相互區(qū)分的URI。名稱空間的作用域是定義名稱的元素及其子樹。沒有前綴的名稱空間稱為缺省名稱空間。Schema是描述XML文檔的文檔,用來定義XML文檔的格式。最常用的用法之一就是依照預(yù)定義好的規(guī)則來驗(yàn)證XML文檔的有效性。Schema可以確認(rèn):(1)元素和屬性的結(jié)構(gòu);(2)元素出現(xiàn)的順序;(3)對元素和屬性的數(shù)據(jù)值的取值范圍進(jìn)行限定;(4)保證實(shí)例中值的唯一性。46與DTD相比較而言,XMLSchema采用XML的語法,并且支持名稱空間,提供豐富的數(shù)據(jù)類型定義手段,具有很強(qiáng)的描述能力、擴(kuò)展能力和處理維護(hù)能力。元素和屬性是XML文檔的基本構(gòu)件。Schema主要包括元素和屬性的聲明及定義,模式文檔由元素、屬性、名稱空間和XML文檔中的其他結(jié)點(diǎn)構(gòu)成,并且至少要包含:schema根元素、XML模式名稱空間的定義和元素定義。元素是利用element標(biāo)記來聲明的,其中name屬性是元素的名字,type屬性是元素值的類型。屬性實(shí)現(xiàn)的方法是使用attribute元素。47§9.3XMLSchema模式的驗(yàn)證

XMLSchema模式的目的是約束一個(gè)規(guī)范的XML文件,也稱一個(gè)受某個(gè)XMLSchema模式約束的XML文件是有效的XML文件。驗(yàn)證一個(gè)XML文件是否遵守了某個(gè)XMLSchema模式的步驟

(1)得到一個(gè)SchemaFactory對象

SchemaFactoryschemaFactory=SchemaFactory.newInstance("/2001/XMLSchema");(2)創(chuàng)建Schema對象

Schemaschema=schemaFactory.newSchema(newFile("pattern.xsd"));(3)得到驗(yàn)證器

Validatorvalidator=schema.newValidator();(4)驗(yàn)證validator.validate(newStreamSource(newFile("cha8_1.xml")));例題1例題1example9_1.xml<?xmlversion="1.0"encoding="UTF-8"?><商品列表><商品><名稱>電視機(jī)</名稱><生產(chǎn)日期>2010-12-12</生產(chǎn)日期><價(jià)格>5673.89</價(jià)格></商品><商品><名稱>洗衣機(jī)</名稱><生產(chǎn)日期>2010-10-10</生產(chǎn)日期><價(jià)格>3673.67</價(jià)格></商品></商品列表>

schema9_1.xsdTestSchema.java§9.4簡單類型元素對于XML文件的中沒有子標(biāo)記的標(biāo)記,即只有文本數(shù)據(jù)的標(biāo)記,XMLSchema模式可以使用內(nèi)建的“簡單類型”元素來約束。

<xsd:elementname=“標(biāo)記名稱”type=“簡單數(shù)據(jù)類型”/>例題2補(bǔ)充作業(yè)根據(jù)書籍XML文檔,建立Schema文檔和DTD文檔。<?xmlversion="1.0"encoding="gb2312"?><bookisbn="0-764-58007-8"><title>三國演義</title><author>羅貫中</author><price>80.00</price><resume>滾滾長江東逝水,浪花淘盡英雄。是非成敗轉(zhuǎn)頭空。青山依舊在,幾度夕陽紅。</resume><resume>白發(fā)漁樵江渚上,慣看秋月春風(fēng)。一壺濁酒喜相逢。古今多少事,都付笑談中。</resume></book>51學(xué)號姓名補(bǔ)充52StringDataTypes(1of2)53StringDataTypes(2of2)54StringExamplesStringCancontaincharacters,linefeeds,carriagereturns,andtabcharacters.

<xs:elementname="customer"type="xs:string"/>NormalizedStringCancontainscharacters,buttheXMLprocessorwillremovelinefeeds,carriagereturns,andtabcharacters.<xs:elementname="customer"type="xs:normalizedString"/>TokenCancontainscharacters,buttheXMLprocessorwillremovelinefeeds,carriagereturns,tabs,leadingandtrailingspaces,andmultiplespaces.<xs:elementname="customer"type="xs:token"/>55DateandTimeDataTypes56DateandTimeExamples(1of5)DateThedateisspecifiedintheform"CCYY-MM-DD":CCindicatesthecenturyYYindicatestheyearMMindicatesthemonthDDindicatestheday<xs:elementname="start"type="xs:date"/><start>2002-09-24</start>TimeThetimeisspecifiedintheform"hh:mm:ss":hhindicatesthehourmmindicatestheminutessindicatesthesecond<xs:elementname="start"type="xs:time"/><start>09:30:10.5</start>57DateandTimeExamples(2of5)DateTimeThedateTimeisspecifiedintheform"CCYY-MM-DDThh:mm:ss":CCindicatesthecenturyYYindicatestheyearMMindicatesthemonthDDindicatesthedayTindicatesthestartoftherequiredtimesectionhhindicatesthehourmmindicatestheminutessindicatesthesecond<xs:elementname="startdate"type="xs:dateTime"/><startdate>2002-05-30T09:00:00</startdate>58DateandTimeExamples(3of5)TimeZonesTospecifyatimezone,

youcaneitheradda"Z"behindtheUTCtime,oryoucanspecifyanoffsetfromtheUTCtimebyaddingapositiveornegativetimebehindthetime:<startdate>2002-05-30T09:30:10Z</startdate><startdate>2002-05-30T09:30:10-06:00</startdate><startdate>2002-05-30T09:30:10+06:00</startdate>59DateandTimeExamples(4of5)DurationThetimeintervalisspecifiedintheform"PnYnMnDTnHnMnS":Pindicatestheperiod(required)nYindicatesthenumberofyearsnMindicatesthenumberofmonthsnDindicatesthenumberofdaysTindicatesthestartofatimesectionnHindicatesthenumberofhoursnMindicatesthenumberofminutesnSindicatesthenumberofseconds60DateandTimeExamples(5of5)<xs:elementname="period"type="xs:duration"/><period>P5Y</period><period>P5Y2M10D</period><period>P5Y2M10DT15H</period><period>PT15H</period><period>-P10D</period>61NumericDataTypes(1of2)62NumericDataTypes(2of2)63NumericExamplesDecimalNote:Themaximumnumberofdecimaldigitsyoucanspecifyis18.<xs:elementname="prize"type="xs:decimal"/><prize>999.50</prize><prize>-999.5230</prize>Integer<xs:elementname="prize"type="xs:integer"/><prize>999</prize><prize>-999</prize>Boolean<xs:attributename="disabled"type="xs:boolean"/><prizedisabled="true">999</prize>64元素聲明<elementname='QName'ref='QName‘type='QName‘use='optional|prohibited|required‘form='qualified|unqualified‘id='ID‘default='String‘fixed='String'>Content:(annotation?,((simpleType|complexType)?(unique|key|keyref)*))</element>65Eg.元素聲明<elementname=“myglobalelt1”type=“mySimpleType”/><elementname=“myglobalelt2”type=“myComplexType”/><elementname=“myglobalelt3”><complexType><elementname=“mylocalelt”type=“otherType”/><elementref=“myglobalelt2”/><attributename=“mylocalattr”type=“date”/></complexType></element>66屬性聲明<attributename='QName'ref='QName‘type='QName‘use='optional|prohibited|required‘form='qualified|unqualified‘id='ID‘default='String‘fixed='String'>(anyattributewithnon-schemanamespace)>Content:(annotation?,(simpleType?))</attribute>67復(fù)雜類型定義<complexTypeabstract='boolean'block='#all|Listof(extension|restraction)‘final='#all|Listof(extension|restraction)‘id='ID‘mixed='boolean‘name='NCName‘(anyattributewithnon-schemanamespace)>Content:(annotation?,(simplecontent|complexComtent((group|all|choice|sequence)?,((attribute|attributeGroup)*,anyAttribute?)))</complexType>68組元素組元素將元素聲明組成一個(gè)集合;組元素僅僅將元素聲明組成一個(gè)集合,而不能將屬性聲明聚集;排序-all|sequence|choice69Group模型(1/3)Modelgroupsallowyoutogroupasetofelementdeclarationstogetherandusetheminmultipleplaces.ModelGroupwithsequencecompositor:<xs:groupname="orderedName"><xs:sequence><xs:elementname="firstName"type="string"/><xs:elementname="lastName"type="string"/></xs:sequence></xs:group>70Group模型(2/3)ModelGroupwithchoicecompositor:<xs:groupname="securityQuestion"><xs:choice><xs:elementname="maidenName"type="xs:string"/><xs:elementname="cityOfBirth"type="string"/></xs:choice></xs:group>71Group模型(3/3)ModelGroupwithallcompositor:<xs:groupname="heightAndWeight"><xs:all><xs:elementname="height"type="xs:float"/><xs:elementname="weight"type="float"/></xs:all></group>72屬性組<attributeGroupname=“myAttrGroup”><attributename=“myD1”type=“string”/><attributename=“myD2”type=“integer”/><attributename=“myD3”type=“date”/></attributeGroup><complexTypename=“myDS”><elementname=“myelement”type=“myType”/><attributeGroupref=“myAttrGroup”/></complexType>注:屬性聲明總是在最后73內(nèi)容模型(1of3)SimpleDeclareusing<xs:simpleContent>andextensionorrestriction<complexTypename="simpleContentType"><xs:simpleContent><xs:extensionbase="xs:...">...</xs:extension></xs:simpleContent></xs:complexType>EmptyDeclarebyjustwritingattributes:<xs:complexTypename="emptyType"><xs:attributename="flag"type="xs:boolean”/></xs:complexType>74內(nèi)容模型(2of3)ElementOnlyDeclare

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論