XMLSCHEMA教程_第1頁
XMLSCHEMA教程_第2頁
XMLSCHEMA教程_第3頁
XMLSCHEMA教程_第4頁
XMLSCHEMA教程_第5頁
已閱讀5頁,還剩26頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、W3CXMLSchem瞰程XMLSCHEMA程本教程是筆者學(xué)習(xí)W3C勺XMLSchemaTutorial»的筆記。若是你對(duì)原教程感愛好,能夠閱讀。XMLSchema是W3cti定的基于XML格式的XML文檔結(jié)構(gòu)描述標(biāo)準(zhǔn)。作為一種文檔描述語言,通常咱們將其簡寫為XSD(XMLSchemaDefine)。XSD作為DTD(文檔類型概念)的替代者,已經(jīng)普遍地應(yīng)用到各類商業(yè)應(yīng)用。利用XSQ咱們不僅能夠描述XML文檔的結(jié)構(gòu)以便公布業(yè)務(wù)標(biāo)準(zhǔn),而且能夠利用支持XSD的通用化XML解析器對(duì)XML文檔進(jìn)行解析并自動(dòng)地檢查其是不是知足給定的業(yè)務(wù)標(biāo)準(zhǔn)。應(yīng)用XSD校馬金XML文檔的結(jié)構(gòu)后,咱們不僅驗(yàn)證了XM

2、L文檔的有效性(Well-FormedDocument),還驗(yàn)證了XML文檔的合法性,乃至驗(yàn)證了XML文檔各域的值合法性(數(shù)據(jù)類型與編碼值),而且這些驗(yàn)證工作沒必要咱們編寫任何代碼,只需利用支持XSD的通用化XML文檔解析器即可完成。這就給應(yīng)用軟件帶來了龐大的靈活性,以前需要借助數(shù)據(jù)庫或配置文件才能完成的參數(shù)化治理,此刻只需依照新的業(yè)務(wù)需求發(fā)布新的XMLSchema即可。作為一個(gè)入門,下面列出一個(gè)XML文檔及其XSD文檔,使咱們對(duì)XSD有個(gè)簡單的熟悉:XML<?xmlversion="1.0"?><notexmlns=""xmlns:x

3、si="/2001/XMLSchema-instance"xsi:schemaLocation="note.xsd"><to>Tove</to><from>Jani</from><heading>Reminder</heading><body>Don'tforgetmethisweekend!</body></note>XSD<?xmlversion="1.0"?>(1)

4、<xs:schemaxmlns:xs="/2001/XMLSchema"targetNamespace=""xmlns=""elementFormDefault="qualified"><xs:elementname="note">(3)<xs:complexType>(4)<xs:sequence>(5)<xs:elementname="to"type="xs:string&qu

5、ot;/>(6)<xs:elementname="from"type="xs:string"/><xs:elementname="heading"type="xs:string"/>(8)<xs:elementname="body"type="xs:string"/>(9)</xs:sequence></xs:complexType></xs:element></xs:schema>說明

6、如下:(1) <?xmlversion="1.0"ncoding="UTF-8"?>XML文檔概念,描述本文檔利用的XML標(biāo)準(zhǔn)版本及文檔編碼標(biāo)準(zhǔn)。(2) 2)<xs:schemaxmlns:xs="/2001/XMLSchema"targetNamespace="w3schools"xmlns="w3schools"elementFormDefault="qualified"><xs:schema>是所有XSD文檔的根元素,其屬

7、性描述文檔的名空間及文檔引用;xmlns:xs="/2001/XMLSchema"指示利用xs:作前綴的元素、屬性、類型等名稱是屬于g/2001/XMLSchema名空間的。targetNamespace="w3schools"指示本文檔概念的元素、屬性、類型等名稱屬于名空間;xmlns="w3schools"指示缺省的名空間是http:/,即沒有前綴的元素、屬性、類型等名稱是屬于該名空間的。elementFormDefault="qualified"指示利用本XSD概念的XML文檔所利用的元素必需在本

8、文檔中概念且利用名空間前綴。(3) <xs:elementname="note">概念一個(gè)元素,該元素的名稱是note,即XML中的<note>;<note>元素的類型是復(fù)雜類型,具體魄式由子元素概念;(5) 5)<xs:sequence><note>元素的子元素必需按順序顯現(xiàn)。具體的順序由子元素的概念順序決定;(6) <xs:elementname="to"type="xs:string"/>概念一個(gè)元素<to>,其類型是string,且其是<

9、note>的第1個(gè)子元素;(7) <xs:elementname="from"type="xs:string"/>概念一個(gè)元素<from>,其類型是string,且其是<note>的第2個(gè)子元素;(8) <xs:elementname="heading"type="xs:string"/>概念一個(gè)元素heading,其類型是string,且其是<note>的第3個(gè)子元素;(9) <xs:elementname="body"t

10、ype="xs:string"/>概念一個(gè)元素<body>,其類型是string,且其是<note>的第4個(gè)子元素;上面的說明能夠看出咱們描述的XML文檔應(yīng)知足這些要求:根元素是<note>;<note>能夠包括四個(gè)子元素,另I離是<to>、<from>、heading、<body>,且必需按<to>、<from>、heading、<body>的順序顯現(xiàn);四個(gè)子元素都是string類型的。1 格式良好文檔知足以下要求的XML文檔,稱為格式良好的文檔(

11、Well-FormedDocument):(1) 利用XML概念打頭,如:<?xmlversion="1.0"encoding="UTF-8”?>;(2) 文檔僅包括一個(gè)唯一的根元素;(3) 起始標(biāo)記(<xxx>)必需與終止標(biāo)記(</xxx>)匹配;(5) 所有元素是閉合的(必需與配套);(6) 所有元素嵌套是正確的;(7) 所有屬性利用""或括;(8) entitiesmustbeusedforspecialcharacters。應(yīng)注意到,知足上述要求的文檔只能算是有效的文檔,但不能算是合法的文檔。例如,業(yè)

12、務(wù)標(biāo)準(zhǔn)要求文檔中必需包括5個(gè)SEG元素,若是文檔中僅包括了4個(gè),它仍是格式良好的文檔,但不知足業(yè)務(wù)標(biāo)準(zhǔn)要求,是一個(gè)非法的文檔。2 XSD應(yīng)用的場合(1)概念文檔中能夠顯現(xiàn)的元素;(2)概念文檔中能夠顯現(xiàn)的屬性;(3)概念元素包括哪些子元素;(4)概念元素顯現(xiàn)的順序;(5)概念元素顯現(xiàn)的次數(shù);(6)概念哪些元素是空或能夠包括text;概念元素與屬性的數(shù)據(jù)類型;(8)概念元素與屬性的缺省值或固定值或值范圍、值列表3 XSD相關(guān)于DTD的優(yōu)勢(1) XSD支持?jǐn)?shù)據(jù)類型;易于描述許可的文檔組成;易于校驗(yàn)數(shù)據(jù)的合法性易于利用數(shù)據(jù)庫中的數(shù)據(jù);易于概念數(shù)據(jù)的約束;易于概念數(shù)據(jù)的模式;易于在不同數(shù)據(jù)類型間進(jìn)行

13、格式轉(zhuǎn)換(2) XSD利用XML語法;(3) XSD使數(shù)據(jù)互換更平安,因?yàn)樗枋隽藬?shù)據(jù)的格式,幸免了歧義;(4) XSD能夠擴(kuò)展,支持類型的擴(kuò)展和結(jié)構(gòu)的擴(kuò)展。4文檔引用XSD支持名空間(NameSpac。和文檔引用。通過名空間,能夠幸免文檔引用中可能致使的名稱重復(fù)問題。W30a定XSD的名空間利用URI作為名稱。以前面的XML為例:<notexmlns="w3schools"xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="w3schoolsnote.xsd&quo

14、t;>xmlns="w3schools"指示本文檔缺省的名空間,即沒有前綴的所有的元素應(yīng)在該空間中概念;xmlns:xsi="/2001/XMLSchema-instance"指示本文檔要引用名空間概念的名稱,其前綴是xsi;xsi:schemaLocation="w3schoolsnote.xsd”指示本文檔要弓I用的w3schools名空間的XSD文檔是。若是要引用多個(gè)名空間的XSD文檔,那么利用空格分隔多個(gè)'Namespacexsd對(duì)。例如:a.xsdb.xsdO右是XSD文檔沒有利用名空間,那么利用xsi:no

15、NamespaceSchemaLocation="note.xsd"代替xsi:schemaLocation。簡單元素描述<sex>男</sex>。簡單元簡單元素指只包括text的XML元素,它沒有任何子元素或?qū)傩?,?素能夠附加地概念其缺省值或固定值。XSD概念簡單元素的格式是:<xs:elementname="xxx"type="ttt"default="defva門fixed="fixedva/>。其中ttt利用XSD標(biāo)準(zhǔn)概念的大體類型,即:xs:string、xs:dec

16、imal、xs:integer、xs:boolean、xs:date、xs:time等。例如:<xs:elementname="sex"type="xs:string"default="男">。利用上述方式概念的簡單元素只能限定元素的數(shù)據(jù)類型、缺省值、固定值。若是希望限定該簡單元素的取值范圍等約束,那么應(yīng)利用簡單類型概念,并在簡單類型中嵌套值約束子元素。如:<xs:elementname="sex"><xs:simpleType><xs:restrictionbase=&q

17、uot;xs:string"><xs:enumerationvalue="男"/><xs:enumerationvalue="女"/></xs:restriction></xs:simpleType></xs:element>其中,約束的概念方式參考第6節(jié)。6復(fù)雜元素描述復(fù)雜元素指包括屬性或子元素的XML元素,如:studentname="Li"sex="男">,要緊包括以下四類:空元素:只包括屬性的元素。如:studentname=

18、"li"/>;只包括屬性與子元素的元素。如:nametype="realname”><firstname>Jack</firstname><lastname>Tom</lastname></name>只包括屬性與text的元素。如:<nametype="firstname”>Jack</name>只包括屬性、text和子元素的元素。如:<nametype="realname”>Yournameis:<firstname>xxx

19、</firstname><lastname>xxx</lastname></name>復(fù)雜元素是一種復(fù)雜類型,能夠利用下面兩種描述方式,一是復(fù)合結(jié)構(gòu),二是分離結(jié)構(gòu)。復(fù)合結(jié)構(gòu),那么直接將復(fù)雜類型概念為復(fù)雜元素的子元素;分離結(jié)構(gòu)那么是將復(fù)雜類型概念在外部,由復(fù)雜元素引用。復(fù)合結(jié)構(gòu)<xs:elementname="xxx"><xs:complexType></xs:complexType></xs:element>分離結(jié)構(gòu)<xs:elementname="xxx&quo

20、t;type="yyy”/><xs:complexTypename=yyy”></xs:complexType>這兩種描述結(jié)構(gòu)也適合于屬性、簡單元素的描述。若是XSD元素中存在大量可復(fù)用的自概念數(shù)據(jù)類型時(shí),建議利用分離式的概念結(jié)構(gòu)。數(shù)據(jù)類型XSD的數(shù)據(jù)類型包括大體數(shù)據(jù)類型、簡單數(shù)據(jù)類型、復(fù)雜數(shù)據(jù)類型三類。大體數(shù)據(jù)類型指W3C標(biāo)準(zhǔn)概念的數(shù)據(jù)類型,要緊包括xs:integer、xs:string、xs:date、xs:boolean等。簡單數(shù)據(jù)類型是大體數(shù)據(jù)類型的擴(kuò)展,對(duì)取值進(jìn)行約束;復(fù)雜數(shù)據(jù)類型那么是一個(gè)復(fù)雜的數(shù)據(jù)結(jié)構(gòu),通常包括了屬性或子元素概念。(1)

21、簡單類型簡單類型擴(kuò)展大體數(shù)據(jù)類型,并對(duì)值施加必然的約束。如:<xs:simpleTypename="XSDSimpleType"><xs:restrictionbase="dateTime"><xs:enumerationvalue="value1"/><xs:enumerationvalue="value2"/><xs:enumerationvalue="value3"/></xs:restriction><xs:s

22、impleTypename="XSDSimpleType"><xs:listitemType="dateTime"><xs:enumerationvalue="value1"/><xs:enumerationvalue="value2"/><xs:enumerationvalue="value3"/></xs:list></xs:simpleType><xs:simpleTypename="XSDSim

23、pleType"><xs:unionmemberTypes="dateTime"><xs:enumerationvalue="value1"/><xs:enumerationvalue="value2"/><xs:enumerationvalue="value3"/></xs:union></xs:simpleType>(2) 復(fù)雜類型復(fù)雜類型一般是復(fù)雜元素的數(shù)據(jù)類型或復(fù)雜元素的子元素,描述復(fù)雜元素的子元素、屬性和子元素與屬性的

24、類型。參看后續(xù)各末節(jié)的描述。約束約束指對(duì)簡單類型的元素或?qū)傩允┘拥闹导s束條件,要緊包括范圍約束、長度約束、列舉值、模式匹配、空白處置等,是XSD元素或?qū)傩灾迪拗频幕A(chǔ)。(1) 范圍約束范圍約束要緊施加到數(shù)值型、日期型等類型,限制取值的范圍。如:<xs:restrictionbase="xs:integer"><xs:minInclusivevalue="0"/><xs:maxInclusivevalue="120"/></xs:restriction>上述范圍約束限定的取值范圍是:0&l

25、t;=值<=120。其他的值范圍約束元素要緊包括:fractionDigits設(shè)置最大小數(shù)位數(shù)totalDigits指定精準(zhǔn)的數(shù)值位數(shù)maxExclusive設(shè)置數(shù)值型的最大值(val<xxx)maxInclusive設(shè)置數(shù)值型的最大值(val<=xxx)minExclusive設(shè)置數(shù)值型的最小值(val>xxx)minInclusive設(shè)置數(shù)值型的最小值(val>=xxx)(2) 長度約束長度約束施加到任何類型上限制值的長度,包括<xs:length>固定長度、<xs:maxLength>最大長度、<xs:minLength>

26、最小長度三個(gè)限定元素。如:<xs:restrictionbase="xs:string"><xs:lengthvalue="8"/><xs:restrictionbase="xs:string"><xs:minLengthvalue="5"/><xs:maxLengthvalue="8"/></xs:restriction>(3) 列舉值約束列舉值約束限制元素或?qū)傩缘闹抵荒茉诮o定的值列表中取值,并利用類型。如:<xs:

27、restrictionbase="xs:string"><xs:enumerationvalue="CNY"/><xs:enumerationvalue="USD"/><xs:enumerationvalue="JPY"/></xs:restriction>(4) 模式匹配約束模式匹配約束限制元素或?qū)傩缘闹祽?yīng)知足給定的模式要求,并利用型。如:<xs:restrictionbase="xs:string"><xs:patter

28、nvalue="a-z"/></xs:restriction>以下是些模式匹配的例如:base屬性指示值的數(shù)據(jù)base屬性指示值的數(shù)據(jù)類a-za-z間的單個(gè)字符;A-ZA-Z兩個(gè)字符,每一個(gè)字符都在A-Z間;a-zA-Za-z或A-Z間的單個(gè)字符;abc單個(gè)字符a或b或c;(a-z)*零個(gè)或任意個(gè)字符a-z;(a-zA-Z)+一個(gè)或任意個(gè)字符對(duì),每對(duì)字符大小寫距離顯現(xiàn);"a"|"b"值只能是a或b,與列舉類似;a-zA-Z0-98精準(zhǔn)的八個(gè)a-z或A-Z或0-9間的字符。(5) 空白處置約束空白處置約束限制XML文檔

29、解析器如何處置值的組成空白字符,利用<xs:whitespace>限定元素指示。如:<xs:restrictionbase="xs:string"><xs:whiteSpacevalue="replace"/></xs:restriction>value可能的取值包括:replace刪除內(nèi)容中的全數(shù)空白;preserve保留內(nèi)容中的全數(shù)空白;collapse刪除前導(dǎo)、后導(dǎo)空白,替換內(nèi)容中的一個(gè)或多個(gè)空白為一個(gè)空格;屬性屬性本身老是概念為簡單類型的。屬性能夠指定缺省值、固定值、強(qiáng)制項(xiàng)、約束等屬性。屬性概念格式

30、是:<xs:attributename="xxx"type="ttt"default="ddd"fixed="fff"use="required">。如:<xs:attributename="orderid"type="xs:string"use="required"/>或<xs:attributename="orderid"><xs:simpleTypename="

31、;orderIdType"><xs:restrictionbase="string"><xs:patternvalue="A-Z"d8"/></xs:restriction></xs:simpleType></xs:attribute>或<xs:attributename="orderid"type="orderIdType"/><xs:simpleTypename="orderIdType"

32、><xs:restrictionbase="string"><xs:patternvalue="A-Z"d8"/></xs:restriction>空元素描述空元素通常利用<xs:complexType>描述:<xs:elementname="product"><xs:complexType><xs:attributename="prodid"type="xs:positiveInteger"/>

33、</xs:complexType></xs:element>或利用<xs:simpleContent>描述,這種格式通常在元素包括屬性和文本時(shí)利用<xs:elementname="product"><xs:complexType><xs:simpleContent><xs:restrictionbase="xs:integer"><xs:attributename="prodid"type="xs:positiveInteger&quo

34、t;/></xs:restriction></xs:simpleContent></xs:complexType></xs:element>或利用分離結(jié)構(gòu)描述。只包括子元素的元素描述<xs:elementname="name"><xs:complexType><xs:sequence></xs:sequence></xs:complexType></xs:element>或利用分離結(jié)構(gòu)描述。只包括text的元素描述Text老是大體類型或簡單類型的,因

35、此其描述利用擴(kuò)展大體類型。<xs:elementname="somename"><xs:complexType><xs:simpleContent><xs:extensionbase="basetype">.</xs:extension></xs:simpleContent></xs:complexType></xs:element>利用<xs:extension>擴(kuò)展大體類型;成,<xs:complexType><xs:simp

36、leContent><xs:restrictionbase="basetype">.</xs:restriction></xs:simpleContent></xs:complexType></xs:element>利用xs:restriction擴(kuò)展類型。若是元素包括屬性和文本,那么描述格式如下:<xs:elementname="shoesize"><xs:complexType><xs:simpleContent><xs:extensionba

37、se="xs:integer"><xs:attributename="country"type="xs:string"/></xs:extension></xs:simpleContent></xs:complexType>混合結(jié)構(gòu)的元素描述若是子元素間夾雜了text,那么text總被以為是xs:string的,因此只需描述子元素的組成,并利用mixed="true”指示本元素是混合結(jié)構(gòu)的元素。如以下描述:.xml<letter>DearMr.<name

38、>JohnSmith</name>:Yourorder<orderid>1032</orderid>willbeshippedon<shipdate>2001-07-13</shipdate>.Thanks.</letter>.xsd<xs:elementname="letter"><xs:complexTypemixed="true"><xs:sequence><xs:elementname="name"type=

39、"xs:string"/><xs:elementname="orderid"type="xs:positiveInteger"/><xs:elementname="shipdate"type="xs:date"/></xs:sequence></xs:complexType></xs:element>類型擴(kuò)展XSDJ用<xs:extension>擴(kuò)展一個(gè)大體類型、簡單類型或復(fù)雜類型。擴(kuò)展簡單類型主若是增加附加的一些約束

40、,擴(kuò)展復(fù)雜類型那么能夠增加新的組成元素或?qū)傩?。如?1)大體類型擴(kuò)展<xs:complexType><xs:simpleContent><xs:extensionbase="xs:integer"><xs:attributename="country"type="xs:string"/></xs:extension></xs:simpleContent></xs:complexType>(2)復(fù)雜類型擴(kuò)展<xs:complexTypename=&

41、quot;personinfo"><xs:sequence><xs:elementname="firstname"type="xs:string"/><xs:elementname="lastname"type="xs:string"/></xs:sequence></xs:complexType><xs:complexTypename="fullpersoninfo"><xs:complexConte

42、nt><xs:extensionbase="personinfo"><xs:sequence><xs:elementname="country"type="xs:string"/></xs:sequence></xs:extension></xs:complexContent></xs:complexType>對(duì)復(fù)雜類型進(jìn)行擴(kuò)展,利用<xs:complexContent>,對(duì)簡單類型進(jìn)行擴(kuò)展利用<xs:simpleContent

43、>。復(fù)雜類型指令復(fù)雜類型指令操縱子元素如安在復(fù)雜元素中利用,包括三類指令:順序、次數(shù)、分組。(1) 順序順序指令操縱子元素是不是按順序顯現(xiàn),包括三種類型:<xs:all>指示這些子元素最多顯現(xiàn)一次,且順序無關(guān)(minOccurs=0,maxOccurs=1)<xs:complexTypename="fullpersoninfo"><xs:all><xs:elementname="address"type="xs:string"/><xs:elementname="c

44、ity"type="xs:string"/></xs:all></xs:complexType><xs:sequencs>指示這些子元素必需按順序顯現(xiàn)。<xs:complexTypename="fullpersoninfo"><xs:sequencs><xs:elementname="address"type="xs:string"/><xs:elementname="city"type="x

45、s:string"/><xs:elementname="country"type="xs:string"/></xs:sequence></xs:complexType><xs:choice>指示這些子元素只能顯現(xiàn)其中一個(gè)。<xs:complexTypename="fullpersoninfo"><xs:choice><xs:elementname="address"type="xs:string"/&

46、gt;<xs:elementname="city"type="xs:string"/><xs:elementname="country"type="xs:string"/></xs:complexType>(2) 次數(shù)次數(shù)指令作為元素的屬性,操縱元素能夠顯現(xiàn)的次數(shù),包括兩個(gè)指令:minOccurs、maxOccurs如:elementname="B2C"type="string"minOccurs="3"maxOccur

47、s="4"></element>(3) 組組指令指示一個(gè)元素或?qū)傩约?。元素組利用<xs:groupname="xxx">嵌套個(gè)all、choice、sequence指令;概念后,利用<xs:groupref="name">弓I用元素組。屬性組利用<xs:attributeGroupname="xxx">嵌套多個(gè)attribute屬性概念。概念后,利用<xs:attributeGroupref="name">引用屬性組。復(fù)雜類型還

48、能夠利用一些特殊的標(biāo)記擴(kuò)展文檔。<xs:anyminOccurs="0">指示能夠在此位置包括任何其他元素;(這些元素也必需在Schema文檔中進(jìn)行概念)<xs:anyAttribute>指示能夠在此位置包括任何其他的屬性。(這些屬性也必需在Schema文檔中進(jìn)行概念)置換組置換組能夠依照用戶需要選擇利用一組元素,其實(shí)際的成效相當(dāng)于給一個(gè)元素取了一個(gè)別名。如:<xs:elementname="name"type="xs:string"/><xs:elementname="navn&q

49、uot;substitutionGroup="name"/>navn是name的置換,因此文檔中利用<name>勺位置均能夠利用<navn>且<navn>的類型和name淺型一致。若是想禁止置換某個(gè)元素,能夠在概念元素時(shí)利用block="substitution"屬性。置換元素和被置換元素必需是全局元素。所謂全局元素確實(shí)是<xs:schema>元素的直接子元素嵌套在全局元素中的元素稱為本地元素。(因此,復(fù)雜類型概念中老是利用<xs:elementref="name"/>

50、的形式引用全局元素)最正確實(shí)踐(1)將可能被共享的元素創(chuàng)建為全局大體元素;(或?qū)⑷珨?shù)元素創(chuàng)建為全局元素);(2)依照各元素的類型創(chuàng)建全局的類型,并設(shè)置必要的約束;(3)組合(引用)全局大體元素形成元素集合(復(fù)雜類型);(4)組合復(fù)雜類型為最終的模型。利用這種模式,適合大型項(xiàng)目,能夠共享大量的元素概念,但缺點(diǎn)是由于共享大量的元素概念,可能致使模型比較復(fù)雜。7實(shí)例下面咱們對(duì)給定的xml建模其xsd文檔,利用的工具是myEclipse。.xml<?xmlversion="1.0"encoding="ISO-8859-1"?><shiporde

51、rorderid="889923"xmlns:xsi="/2001/XMLSchema-instance"xsi:noNamespaceSchemaLocation="shiporder.xsd"><orderperson>JohnSmith</orderperson><shipto><name>OlaNordmann</name><address>Langgt23</address><city>400

52、0Stavanger</city><country>Norway</country></shipto><item><title>EmpireBurlesque</title><note>SpecialEdition</note><quantity>1</quantity><price>10.90</price></item><item><title>Hideyourheart</title>&

53、lt;quantity>1</quantity><price>9.90</price></item></shiporder>(1)整理文檔的大體魄式要求:沒有利用名空間;根元素是shiporder;shiporder有一個(gè)屬性orderid,類型是整型的;shiporder有三個(gè)子元素:orderperson是字符串型的;shipto是個(gè)復(fù)雜類型的,且只能顯現(xiàn)一次;item是復(fù)雜類型的,能夠顯現(xiàn)1次或多次;shipto有四個(gè)子元素:name是字符串型的;address是字符串型的;city是字符串型的;country是字符串型的

54、;item有三個(gè)子元素:title是字符串型的;quantity是整型的;price是數(shù)值型的。(2)創(chuàng)建全數(shù)元素、屬性為全局元素、國ElwhiIe國Type回:string1%u"爐:string|B七©untrf:string回itew:itemTyje|C,口一包工trimg回srdwrper口dn:string作piiG:al<icniaidi”.ini|bteMq口:rdni;sliipord&rTyp回寫hi口to:xhiploTyygleitl9:string劇it電爐工5電T-|6ipsdurTyr*(AttributesGroupsqider

55、id;long(3)創(chuàng)建各自概念類型的描述;由于咱們將全數(shù)元素均創(chuàng)建為全局元素,因此在創(chuàng)建類型的組成元素時(shí),咱們均創(chuàng)建為對(duì)全局元素的引用。另外,注意指定組成元素的顯現(xiàn)次數(shù)。|田siiipord«rTyre:orderidLong:fLorirperscitstringDM3期.5hipt0L,1shiytoTypeitemL,*itemTypeI-shiptoT5name£trizig;律_&ddreq寫zlring承c“Fstri矩s皿tryetringeraType承tl山striikg晶由tyiM旗1pricedecimal修改xsd的名空間;(4)(5)最終

56、形成的文檔如下:<?xml version ="1.0" encoding ="UTF-8" ?><xsd:schema elementFormDefault ="qualified"xmlns:xsd ="/2001/XMLSchema"<!-元素建模-><xsd:elementname="shiporder" type ="shiporderType" ></ xsd:element >

57、<xsd:elementname="orderperson" type ="xsd:string" ></ xsd:element ><xsd:elementname="shipto" type ="shiptoType" ></ xsd:element<xsd:elementname="name" type ="xsd:string" ></ xsd:element ><xsd:elementname="address" type ="xsd:string" &g

溫馨提示

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

評(píng)論

0/150

提交評(píng)論