




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、1第第10章章 XML Schema模式簡介模式簡介“更有效”的XML文檔2目標(biāo)目標(biāo)l理解理解XML Schema的含義與用途的含義與用途l掌握掌握XML Schema 中的元素、屬性聲明中的元素、屬性聲明l掌握掌握XML Schema支持的數(shù)據(jù)類型支持的數(shù)據(jù)類型l理解理解XML Schema 的命名空間的概念的命名空間的概念3Schema 簡介簡介字典含義概括性表示、大綱或模型軟件上下文模型用于描述數(shù)據(jù)庫的結(jié)構(gòu),定義表格、字段等內(nèi)部結(jié)構(gòu)以及它們之間的關(guān)系XML 上下文一組用于約束結(jié)構(gòu)和清晰表達(dá) XML 文檔的信息集的規(guī)則 4DTD 與與 SchemaDTDSGML定義內(nèi)容模型有效順序和元素嵌
2、套有限的屬性數(shù)據(jù)類型5hello包含內(nèi)容?內(nèi)容為數(shù)字? ?有效5XML Schema與與DTDlDTD還有什么缺陷?還有什么缺陷?l采用不同于采用不同于XML的語言編寫的語言編寫l不支持命名空間不支持命名空間l在支持繼承和子類方面的局限性在支持繼承和子類方面的局限性l沒有數(shù)據(jù)類型的概念,無法對(duì)特定元素施加數(shù)據(jù)類型沒有數(shù)據(jù)類型的概念,無法對(duì)特定元素施加數(shù)據(jù)類型lXML Schema的優(yōu)勢(shì):的優(yōu)勢(shì):l內(nèi)容內(nèi)容“開放開放”的模型,可擴(kuò)展、功能強(qiáng)的模型,可擴(kuò)展、功能強(qiáng)l支持豐富的數(shù)據(jù)類型支持豐富的數(shù)據(jù)類型l支持命名空間機(jī)制支持命名空間機(jī)制l可對(duì)整個(gè)可對(duì)整個(gè)XML文檔或者局部進(jìn)行驗(yàn)證文檔或者局部進(jìn)行驗(yàn)證
3、l符合符合XML規(guī)范規(guī)范6Schema 的必要性的必要性lXML Schema規(guī)范規(guī)范是是 W3C的正式推薦標(biāo)準(zhǔn),用的正式推薦標(biāo)準(zhǔn),用于定義于定義xml 文件以改善文件以改善 DTD 的一個(gè)子集的一個(gè)子集 l對(duì)對(duì) DTD 的許多不足之處進(jìn)行了改善,如隱晦的的許多不足之處進(jìn)行了改善,如隱晦的語法、數(shù)據(jù)類型缺乏、封閉的內(nèi)容模型以及不支語法、數(shù)據(jù)類型缺乏、封閉的內(nèi)容模型以及不支持命名空間持命名空間lXML Schema 支持廣泛的數(shù)據(jù)類型,如整型、浮支持廣泛的數(shù)據(jù)類型,如整型、浮點(diǎn)型、日期和時(shí)間點(diǎn)型、日期和時(shí)間l支持其他功能,如開放內(nèi)容模型和命名空間集成支持其他功能,如開放內(nèi)容模型和命名空間集成7X
4、ML Schema 的功能的功能lXML Schema 文檔是使用文檔是使用 XML 語法創(chuàng)建的,所以無需語法創(chuàng)建的,所以無需學(xué)習(xí)含義模糊的語言學(xué)習(xí)含義模糊的語言l可以像任何其他可以像任何其他 XML 文檔一樣傳遞和操作文檔一樣傳遞和操作l提供更豐富的數(shù)據(jù)類型,如布爾型、數(shù)字、日期和時(shí)間、提供更豐富的數(shù)據(jù)類型,如布爾型、數(shù)字、日期和時(shí)間、URI、整型、小數(shù)、實(shí)數(shù)以及時(shí)間間隔、整型、小數(shù)、實(shí)數(shù)以及時(shí)間間隔l提供原型,允許使用預(yù)先存在的數(shù)據(jù)類型來定義用戶自提供原型,允許使用預(yù)先存在的數(shù)據(jù)類型來定義用戶自定義數(shù)據(jù)類型定義數(shù)據(jù)類型l能夠進(jìn)行屬性分組,所有元素都可以具有共同的屬性能夠進(jìn)行屬性分組,所有元
5、素都可以具有共同的屬性l提供可完善原型提供可完善原型8Schema可定義內(nèi)容可定義內(nèi)容文檔中出現(xiàn)的元素文檔中出現(xiàn)的屬性子元素子元素出現(xiàn)順序、數(shù)量元素內(nèi)容是文本或是空元素與屬性的數(shù)據(jù)類型元素與屬性的默認(rèn)值和固定值主要驗(yàn)證:數(shù)據(jù)顯示格式是否正確及是否超出值的范圍所有必須信息是否存在確保不同使用者對(duì)文檔理解的方式相同擴(kuò)充:為元素或?qū)傩蕴砑幽J(rèn)值和固定值使具有簡單類型的元素和屬性值中的空白符規(guī)范化9XML Schema基本結(jié)構(gòu)基本結(jié)構(gòu)lXML Schema有兩種重要的有兩種重要的Schema模型:模型:lMicrosoft XML SchemalW3C XML Schemal文檔后綴名為:文檔后綴名為
6、:.xsdl元素及屬性聲明均以元素及屬性聲明均以xsd:開頭開頭lxsd:schema為根元素為根元素l結(jié)構(gòu):結(jié)構(gòu):元素聲明部分或?qū)傩月暶鞑糠衷芈暶鞑糠只驅(qū)傩月暶鞑糠?0Schema引用引用l驗(yàn)證驗(yàn)證XML文檔,必須指定文檔,必須指定Schema的位置。模式位置的位置。模式位置可以利用帶有名稱空間模式的可以利用帶有名稱空間模式的xsi:schemaLocation屬性以及不帶名稱空間屬性以及不帶名稱空間XML模式的模式的xsi:noNamespaceSchemaLocation屬性指定屬性指定11XML Schema名稱空間名稱空間2-1聲明:聲明:ltargetNamespacel目標(biāo)名稱
7、空間,用于存放當(dāng)前目標(biāo)名稱空間,用于存放當(dāng)前Schema文檔定義文檔定義的元素、屬性和數(shù)據(jù)類型等的元素、屬性和數(shù)據(jù)類型等l標(biāo)準(zhǔn)名稱空間標(biāo)準(zhǔn)名稱空間l構(gòu)造構(gòu)造Schema的元素、屬性和數(shù)據(jù)類型來自標(biāo)準(zhǔn)的元素、屬性和數(shù)據(jù)類型來自標(biāo)準(zhǔn)名稱空間名稱空間“/2001/XMLSchema”l默認(rèn)名稱空間默認(rèn)名稱空間lxmlns=“名稱空間聲明名稱空間聲明”12名稱空間名稱空間顯示顯示 schema 中用到的元素和數(shù)據(jù)類型來自命名中用到的元素和數(shù)據(jù)類型來自命名空間空間 “/2001/XMLSchema”。同時(shí)它還規(guī)定了來自命名空間同時(shí)它還規(guī)定了
8、來自命名空間 /2001/XMLSchema 的元素和數(shù)據(jù)類型應(yīng)該使用前綴的元素和數(shù)據(jù)類型應(yīng)該使用前綴 xs:顯示被此顯示被此 schema 定義的元素定義的元素 (note, to, from, heading, body) 來自命名空間:來自命名空間: http:/ 默認(rèn)的命名空間默認(rèn)的命名空間 XML 實(shí)例文檔所使用的且實(shí)例文檔所使用的且在此在此 schema 中聲明過的中聲明過的元素必須被命名空間限定元素必須被命名空間限定13XML Schema命名空間命名空間2-2l引用引用XML Schema文檔文檔l定義目標(biāo)命名空間定義目標(biāo)命名空間l沒有目標(biāo)命名空
9、間沒有目標(biāo)命名空間note.xml14Schema 示例示例 李亮 男 1985-02-05 exa1.xsd15XML Schema 中的元素中的元素 5-1lSchema 中的元素或?qū)傩允褂弥械脑鼗驅(qū)傩允褂?和和 標(biāo)簽來聲明標(biāo)簽來聲明Schema 元素xmlns要使用任意一種 XML Schema 數(shù)據(jù)類型,需指定 XML Schema 數(shù)據(jù)類型的命名空間 16XML Schema 中的元素中的元素 5-2數(shù)據(jù)類型允許作為數(shù)據(jù)類型的值stringbooleanintegerfloatdate語法:語法:聲明元素語法:聲明元素語法: annotation?,(simpleType|comp
10、lexType)?,(unique|key|keyref)*) 17XML Schema 中的元素中的元素 5-3元素typeminOccursmaxOccurs minOccurs 和 maxOccurs 之間的關(guān)系minOccursmaxOccurs元素可以出現(xiàn)的次數(shù)010 或或 11110unbounded無限無限1unbounded至少一次至少一次0unbounded至少是至少是 minOccurs 次次18XML Schema 中的元素中的元素 5-4l元素引用元素引用l一個(gè)元素在一個(gè)元素在XML文檔中不同位置出現(xiàn)多次,可文檔中不同位置出現(xiàn)多次,可使用使用ref屬性對(duì)元素引用屬性對(duì)元
11、素引用 exa2.xsd 李莉李莉1389785674319屬性聲明屬性聲明l直接在文檔內(nèi)部聲明直接在文檔內(nèi)部聲明l語法:語法: (annotation?,(simpleType?) 學(xué)生信息學(xué)生信息 exa3.xsd20W3C XML Schema數(shù)據(jù)類型數(shù)據(jù)類型l簡單類型簡單類型l內(nèi)建數(shù)據(jù)類型內(nèi)建數(shù)據(jù)類型l聲明以聲明以simpleType開始開始l分為:分為:l原子類型原子類型l列表類型列表類型l聯(lián)合類型聯(lián)合類型l復(fù)雜類型復(fù)雜類型l聲明以聲明以complexType開始開始l分為:分為:l簡單類型簡單類型l純?cè)仡愋图冊(cè)仡愋蚻混合類型混合類型l空類型空類型21內(nèi)建數(shù)據(jù)類型內(nèi)建數(shù)據(jù)類型 指
12、元素的名稱指元素的名稱 元素的數(shù)據(jù)類型元素的數(shù)據(jù)類型 xs:string xs:decimal xs:integer xs:boolean xs:date xs:time 22 Smith 28 1980-03-27默認(rèn)值:默認(rèn)值: 固定值:固定值: 內(nèi)建數(shù)據(jù)類型實(shí)例內(nèi)建數(shù)據(jù)類型實(shí)例23簡單類型聲明簡單類型聲明l簡單類型僅包含數(shù)字、字符串或其他文本數(shù)據(jù),簡單類型僅包含數(shù)字、字符串或其他文本數(shù)據(jù),不包含子元素不包含子元素l語法結(jié)構(gòu):語法結(jié)構(gòu): lsimpleType:類型名稱類型名稱lId:元素元素ID,包含該元素文檔中惟一,可選項(xiàng),包含該元素文檔中惟一,可選項(xiàng)24Schema 支持的數(shù)據(jù)類型支
13、持的數(shù)據(jù)類型從基本的內(nèi)置數(shù)據(jù)類型(稱為 basetype 數(shù)據(jù)類型)可以生成其他數(shù)據(jù)類型基本類型數(shù)據(jù)類型整型整型 integer小數(shù)小數(shù) decimal浮點(diǎn)數(shù)浮點(diǎn)數(shù) float字符串字符串 string日期日期 date時(shí)間時(shí)間 time exa1.xsd25restriction簡單類型簡單類型l語法:語法:一個(gè)或多個(gè)元素指定新數(shù)據(jù)類型的限定一個(gè)或多個(gè)元素指定新數(shù)據(jù)類型的限定 exa4.xsd26列表類型列表類型l列表簡單類型定義為用空格隔開指定數(shù)據(jù)類型列表簡單類型定義為用空格隔開指定數(shù)據(jù)類型的值的一個(gè)列表的值的一個(gè)列表l語法:語法:exa5.xsd泰山泰山 華山華山 嵩山嵩山 衡山衡山 恒
14、山恒山exa6.xsd泰山泰山 華山華山 27聯(lián)合類型聯(lián)合類型l聯(lián)合類型對(duì)應(yīng)值可以包含多個(gè)原子類型,也可聯(lián)合類型對(duì)應(yīng)值可以包含多個(gè)原子類型,也可以包含多個(gè)列表值以包含多個(gè)列表值l語法:語法: memberTypes:包含類型值:包含類型值exa7.xsd李華李華74 張葉張葉90 28復(fù)雜元素復(fù)雜元素10-1 l復(fù)合元素指包含其他元素或?qū)傩缘膹?fù)合元素指包含其他元素或?qū)傩缘?XML 元素元素 l四種類型的復(fù)合元素四種類型的復(fù)合元素 l空元素空元素 l包含其他元素的元素包含其他元素的元素 l僅包含文本或?qū)傩缘脑貎H包含文本或?qū)傩缘脑?l包含元素和文本的元素包含元素和文本的元素 John Smit
15、h Ice cream zhangsanmale29復(fù)雜類型復(fù)雜類型10-2l復(fù)雜類型的元素含有子元素或?qū)傩詮?fù)雜類型的元素含有子元素或?qū)傩詌語法:語法:(annotation?, (simpleContent | complexContent | (group |all | choice | sequence)?, (attribute | attributeGroup)*, anyAttribute?) exa9.xsdC#技術(shù)內(nèi)幕技術(shù)內(nèi)幕Joseph Mayo59.00 這是一本關(guān)于這是一本關(guān)于C#編程語言的指南和參考書。編程語言的指南和參考書。 清華大學(xué)出版社清華大學(xué)出版社2003年年1
16、月月30復(fù)雜類型復(fù)雜類型10-3l內(nèi)建模型可為內(nèi)建模型可為simpleContent、ComplexContent、group、all、choice、sequence和批注和批注annotationlsimpleContentl從簡單類型派生復(fù)雜類型從簡單類型派生復(fù)雜類型l適用于包含字符內(nèi)容或?qū)傩缘遣话釉剡m用于包含字符內(nèi)容或?qū)傩缘遣话釉豯語法:語法: (annotation?,(restriction|extension) exa10.xsdC#技術(shù)內(nèi)幕技術(shù)內(nèi)幕31復(fù)雜類型復(fù)雜類型10-4lcompleContentl從復(fù)雜類型派生新的復(fù)雜類型從復(fù)雜類型派生新的復(fù)雜類型l適用于
17、包含屬性或子元素但不包含字符數(shù)據(jù)適用于包含屬性或子元素但不包含字符數(shù)據(jù)l語法:語法: (annotation?, (restriction | extension) exa11.xsd 這本書的書名是這本書的書名是C#技術(shù)內(nèi)幕技術(shù)內(nèi)幕, 作者是作者是Joseph Mayo, 由由機(jī)械工業(yè)出版社機(jī)械工業(yè)出版社出版。出版。 exa12.xsdC#技術(shù)內(nèi)幕技術(shù)內(nèi)幕32復(fù)雜類型復(fù)雜類型10-5l空元素空元素l沒有內(nèi)容,但可以包含屬性沒有內(nèi)容,但可以包含屬性l定義方式:先定義一個(gè)元素,它能包含子元素定義方式:先定義一個(gè)元素,它能包含子元素不能包含文本內(nèi)容,然后不定義任何子元素不能包含文本內(nèi)容,然后不定義
18、任何子元素 exa8.xsd33復(fù)雜類型復(fù)雜類型10-6lgroupl將若干元素聲明歸位一組將若干元素聲明歸位一組l語法:語法: annotation?,(all|choice|sequence)?) exa13.xsd-1 exa13.xsd-234復(fù)雜類型復(fù)雜類型10-7lalll符合元素聲明的所有子元素以任意順序出現(xiàn),符合元素聲明的所有子元素以任意順序出現(xiàn),且每個(gè)子元素只能出現(xiàn)零次或一次且每個(gè)子元素只能出現(xiàn)零次或一次l語法:語法: (annotation?,element*) exa14.xsd出版社子元素至多出現(xiàn)一次出版社子元素至多出現(xiàn)一次 C#技術(shù)內(nèi)幕技術(shù)內(nèi)幕 Joseph Mayo 機(jī)械工業(yè)出版社機(jī)械工業(yè)出版社35復(fù)雜類型復(fù)雜類型10-8lchoicel只有一個(gè)相容元素必須出現(xiàn),用于互斥情況只有一個(gè)相容元素必須出現(xiàn),用于互斥情況l語法:語法: (annotation?,(element|group|choice|sequence|any)*) exa15.xsd C#技術(shù)內(nèi)幕技術(shù)內(nèi)幕36復(fù)雜類型復(fù)雜類型10-9lsequ
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025儲(chǔ)備土地臨時(shí)利用合同書
- 2025年建筑工程《土地使用權(quán)轉(zhuǎn)讓合同》
- 香港房屋租賃合同范本
- 社區(qū)服務(wù)協(xié)議
- 個(gè)人無息借款協(xié)議書范本
- 經(jīng)營合作合同
- 涉車輛房產(chǎn)分割離婚協(xié)議書
- 2025年預(yù)付式消費(fèi)合同的法律規(guī)范與監(jiān)管
- 2025有限責(zé)任公司股權(quán)轉(zhuǎn)讓合同范本「」
- 安全生產(chǎn)協(xié)議書租房
- 司法雇員考試題目及答案
- 2025年03月廣西玉林博白縣總工會(huì)社會(huì)化工會(huì)工作者13人筆試歷年典型考題(歷年真題考點(diǎn))解題思路附帶答案詳解
- GB/T 37133-2025電動(dòng)汽車用高壓連接系統(tǒng)
- 2024年榆林市榆陽區(qū)公立醫(yī)院招聘考試真題
- Unit 2 Go for it!Understanding ideas教學(xué)設(shè)計(jì) -2024-2025學(xué)年外研版(2024)七年級(jí)英語下冊(cè)
- 電纜橋架國標(biāo)10216-2013
- 管理學(xué)基礎(chǔ)-形考任務(wù)一-國開-參考資料
- 體育體感游戲創(chuàng)業(yè)計(jì)劃
- 法律實(shí)務(wù)案例分析卷集及參考答案解析
- 小學(xué)生風(fēng)電知識(shí)科普課件
- 建筑施工各崗位安全生產(chǎn)責(zé)任書標(biāo)準(zhǔn)范本
評(píng)論
0/150
提交評(píng)論