![尚webservice課件jar包xml約束_第1頁(yè)](http://file4.renrendoc.com/view/00faa49d7ad2b24605649374b3cd19fe/00faa49d7ad2b24605649374b3cd19fe1.gif)
![尚webservice課件jar包xml約束_第2頁(yè)](http://file4.renrendoc.com/view/00faa49d7ad2b24605649374b3cd19fe/00faa49d7ad2b24605649374b3cd19fe2.gif)
![尚webservice課件jar包xml約束_第3頁(yè)](http://file4.renrendoc.com/view/00faa49d7ad2b24605649374b3cd19fe/00faa49d7ad2b24605649374b3cd19fe3.gif)
![尚webservice課件jar包xml約束_第4頁(yè)](http://file4.renrendoc.com/view/00faa49d7ad2b24605649374b3cd19fe/00faa49d7ad2b24605649374b3cd19fe4.gif)
![尚webservice課件jar包xml約束_第5頁(yè)](http://file4.renrendoc.com/view/00faa49d7ad2b24605649374b3cd19fe/00faa49d7ad2b24605649374b3cd19fe5.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
XML講師:張曉飛尚硅谷:學(xué)習(xí)內(nèi)容:1.XML的約束---DTD(***)2.XML的約束---Schema(***)學(xué)習(xí)目標(biāo):1.理解XML約束的用途2.能看懂DTD的定義和引用3.能看懂Schema的定義和引用學(xué)習(xí)時(shí)間:2個(gè)課時(shí)XML約束概述什么是XML約束在XML技術(shù)里,可以編寫一個(gè)文檔(文件)來(lái)約束一個(gè)XML文檔的書寫規(guī)范,這稱之為XML約束。為什么需要XML約束常用的約束技術(shù)XMLDTDXMLSchemaXML約束--DTDDTD約束快束入門DTD(DocumentTypeDefinition),全稱為文檔類型定義。文件清單:book.xml<?xmlversion="1.0"encoding="utf-8"?><!DOCTYPE書架SYSTEM"book.dtd"><書架> <書> <書名>Java培訓(xùn)教程</書名> <作者>老佟</作者> <售價(jià)>39.00元</售價(jià)> </書> <書> <書名>細(xì)說(shuō)PHP</書名> <作者>峰哥</作者> <售價(jià)>99.00元</售價(jià)> </書></書架>文件清單:book.dtd
<!ELEMENT書架(書+)> <!ELEMENT書(書名,作者,售價(jià))> <!ELEMENT書名(#PCDATA)> <!ELEMENT作者(#PCDATA)> <!ELEMENT售價(jià)(#PCDATA)>DTD文件應(yīng)使用UTF-8,不能用GBK編寫:
book.xmlbook.dtd編程校驗(yàn)XML文檔正確性IE5以上瀏覽器內(nèi)置了XML解析工具:Microsort.XMLDOM,開(kāi)發(fā)人員可以編寫javascript代碼,利用這個(gè)解析工具裝載xml文件,并對(duì)xml文件進(jìn)行dtd驗(yàn)證。創(chuàng)建xml文檔解析器對(duì)象varxmldoc=newActiveXObject("Microsoft.XMLDOM");開(kāi)啟xml校驗(yàn)xmldoc.validateOnParse="true";裝載xml文檔xmldoc.load("book.xml“);獲取錯(cuò)誤信息xmldoc.parseError.reason;//解析出錯(cuò)的原因xmldoc.parseError.line;//解析出錯(cuò)的行號(hào)編寫校驗(yàn)程序
validate.htmlXML文件中引入DTD約束的兩種方式外部引入:DTD約束作為一個(gè)單獨(dú)的文件編寫,在xml文件中引入內(nèi)部引入:直接在XML文件內(nèi)編寫約束。引用DTD約束----外部引入DTD文件在本地在xml文件中引用DTD的方式: <!DOCTYPE文檔根結(jié)點(diǎn)SYSTEM"DTD文件">例如:<!DOCTYPE書架SYSTEM“book.dtd”>DTD文件在公用的網(wǎng)絡(luò)(了解)在xml文件中引用DTD的方式: <!DOCTYPE文檔根結(jié)點(diǎn)PUBLIC"DTD名稱""DTD文件的URL"> 例如:<!DOCTYPEweb-appPUBLIC "-//SunMicrosystems,Inc.//DTDWebApplication2.3//EN" "">引用DTD約束----內(nèi)部引入<?xmlversion="1.0"encoding="UTF-8"standalone="yes"?><!DOCTYPE書架[ <!ELEMENT書架(書+)> <!ELEMENT書(書名,作者,售價(jià))> <!ELEMENT書名(#PCDATA)> <!ELEMENT作者(#PCDATA)> <!ELEMENT售價(jià)(#PCDATA)>]><書架> <書> <書名>Java培訓(xùn)教程</書名> <作者>老佟</作者> <售價(jià)>39.00元</售價(jià)> </書> ...</書架>編寫bookInnerDTD.xmlDTD約束語(yǔ)法細(xì)節(jié)元素定義屬性定義實(shí)體定義元素定義(1)
在DTD文檔中使用ELEMENT聲明一個(gè)XML元素,語(yǔ)法格式如下所示:
<!ELEMENT
元素名稱元素內(nèi)容/元素類型>
如為元素內(nèi)容:則需要使用()括起來(lái),如<!ELEMENT書架(書名|作者|售價(jià))*><!ELEMENT書名(#PCDATA)>如為元素類型,則直接書寫,DTD規(guī)范定義了如下幾種類型:EMPTY:用于定義空元素,例如<br/><hr/>ANY:表示元素內(nèi)容為任意類型。元素定義(2)元素內(nèi)容中可以使用如下方式,描述內(nèi)容的組成關(guān)系用逗號(hào)分隔,表示內(nèi)容的出現(xiàn)順序必須與聲明時(shí)一致。<!ELEMENTMYFILE(TITLE,AUTHOR,EMAIL)>
用|分隔,只能是其中任意一個(gè)
<!ELEMENTMYFILE(TITLE|AUTHOR|EMAIL)>元素內(nèi)容無(wú)序:<!ELEMENTMYFILE(TITLE|AUTHOR|EMAIL)*>在元素內(nèi)容中也可以使用+、*、?等符號(hào)表示元素出現(xiàn)的次數(shù):
+:一次或多次(書+) ?:0次或一次(書?) *:0次或多次(書*)屬性定義1
xml文檔中的標(biāo)簽屬性需通過(guò)ATTLIST為其設(shè)置屬性語(yǔ)法格式:
<!ATTLIST
元素名 屬性名1屬性值類型設(shè)置說(shuō)明 屬性名2屬性值類型設(shè)置說(shuō)明
……
>屬性聲明舉例:<!ATTLIST商品 類別CDATA#REQUIRED
顏色CDATA#IMPLIED>對(duì)應(yīng)XML文件:
<商品類別="服裝"顏色="黃色">…</商品> <商品類別="服裝">…</商品>根據(jù)需求定義student.xml文件的約束屬性定義2舉例:<!DOCTYPEuser[<!ELEMENTuser(密碼)><!ATTLISTuser用戶名CDATA#REQUIRED年齡CDATA#IMPLIED是否同意協(xié)議CDATA#FIXED"是"身份CDATA"學(xué)生"><!ELEMENT密碼(#PCDATA)>]>設(shè)置說(shuō)明:#REQUIRED:必須設(shè)置該屬性#IMPLIED:可以設(shè)置也可以不設(shè)置#FIXED:說(shuō)明該屬性的取值固定為一個(gè)值,在XML文件中不能為該屬性設(shè)置其它值。但需要為該屬性提供這個(gè)值直接使用默認(rèn)值:在XML中可以設(shè)置該值也可以不設(shè)置該屬性值。若沒(méi)設(shè)置則使用默認(rèn)值。常用屬性值類型CDATA:表示屬性值為普通文本字符串。ENUMERATED(枚舉)ID屬性值類型ENUMERATED<?xmlversion="1.0"encoding="utf-8"?><!DOCTYPE購(gòu)物籃[
<!ELEMENT購(gòu)物籃(肉+)> <!ELEMENT肉EMPTY>
<!ATTLIST肉品種(雞肉|牛肉|豬肉|魚肉)"雞肉">]><購(gòu)物籃> <肉品種=“豬肉"/> <肉品種="牛肉"/> <肉/></購(gòu)物籃>屬性的類型可以是一組取值的列表,在XML文件中設(shè)置的屬性值只能是這個(gè)列表中的某個(gè)值(枚舉)屬性值類型ID<?xmlversion="1.0"encoding="utf-8"?><!DOCTYPE聯(lián)系人列表[ <!ELEMENT聯(lián)系人列表(聯(lián)系人+)> <!ELEMENT聯(lián)系人(姓名,EMAIL)> <!ELEMENT姓名(#PCDATA)> <!ELEMENTEMAIL(#PCDATA)> <!ATTLIST聯(lián)系人編號(hào)ID#REQUIRED>]><聯(lián)系人列表> <聯(lián)系人編號(hào)="a1"> <姓名>張三</姓名> <EMAIL></EMAIL></聯(lián)系人> <聯(lián)系人編號(hào)="a2"> <姓名>李四</姓名> <EMAIL></EMAIL> </聯(lián)系人></聯(lián)系人列表>表示屬性的設(shè)置值為一個(gè)唯一值。ID屬性的值只能由字母,下劃線開(kāi)始,不能出現(xiàn)空白字符實(shí)體(Entity)定義
實(shí)體用于為一段內(nèi)容創(chuàng)建一個(gè)別名,以后在XML文檔中就可以使用別名引用這段內(nèi)容了。在DTD定義中,一條<!ENTITY…>語(yǔ)句用于定義一個(gè)實(shí)體。語(yǔ)法格式:<!ENTITY實(shí)體名稱“實(shí)體內(nèi)容”>引用方式:&實(shí)體名稱;testEntity.xml<!DOCTYPEperson[
<!ENTITYresume"Iamaprogrammer1"> <!ELEMENTperson(#PCDATA)> <!ATTLISTpersonnameCDATA#REQUIRED>]><personname="Tom">&resume;</person>DTD練習(xí)
根據(jù)DTD文檔中的DTD實(shí)例編寫正確的XML文件編寫測(cè)試文件:catalog.dtdcatalog.xmlXML約束--SchemaSchema約束快速入門<?xmlversion="1.0"encoding="UTF-8"?><schemaxmlns="" targetNamespace="" elementFormDefault="qualified"><elementname="書架"><complexType><sequencemaxOccurs="unbounded"><elementname="書"><complexType><sequence><elementname="書名"type="string"/><elementname="作者"type="string"/><elementname="售價(jià)"type="string"/></sequence><plexType></element></sequence><plexType></element></schema>book.xsd文件Schema約束快速入門<?xmlversion="1.0"encoding="UTF-8"?><書架xmlns="" xmlns:xsi="" xsi:schemaLocation="book.xsd"> <書> <書名>JavaScript開(kāi)發(fā)</書名> <作者>老佟</作者> <售價(jià)>28.00元</售價(jià)> </書></書架>book.xml文件XMLSchemaXMLSchema也是一種用于定義和描述XML文檔結(jié)構(gòu)與內(nèi)容的模式語(yǔ)言,其出現(xiàn)是為了克服DTD的局限性XMLSchemaVSDTD:XMLSchema符合XML語(yǔ)法結(jié)構(gòu)。DOM、SAX等XMLAPI很容易解析出XMLSchema文檔中的內(nèi)容。XMLSchema對(duì)名稱空間支持得非常好。XMLSchema比XMLDTD支持更多的數(shù)據(jù)類型,并支持用戶自定義新的數(shù)據(jù)類型。XMLSchema定義約束的能力非常強(qiáng)大,可以對(duì)XML實(shí)例文檔作出細(xì)致的語(yǔ)義限制。XMLSchema不能像DTD一樣定義實(shí)體,比DTD更復(fù)雜,但XmlSchema現(xiàn)在已是w3c組織的標(biāo)準(zhǔn),它正逐步取代DTD。名稱空間的概念
在XMLSchema中,每個(gè)約束模式文檔都可以被賦以一個(gè)唯一的名稱空間,名稱空間用一個(gè)唯一的URI(UniformResourceIdentifier,統(tǒng)一資源標(biāo)識(shí)符)表示。在Xml文件中書寫標(biāo)簽時(shí),可以通過(guò)名稱空間聲明(xmlns),來(lái)聲明當(dāng)前編寫的標(biāo)簽來(lái)自哪個(gè)Schema約束文檔。如: <atguigu:書架xmlns:atguigu=“”> <atguigu:書>……</atguigu:書> </atguigu:書架> 此處使用atguigu來(lái)指向聲明的名稱,以便于后面對(duì)名稱空間的引用。注意:名稱空間的名字語(yǔ)法容易讓人混淆,盡管以http://開(kāi)始,那個(gè)URL并不指向一個(gè)包含模式定義的文件。事實(shí)上,這個(gè)URL:根本沒(méi)有指向任何文件,只是一個(gè)分配的名字。使用命名空間引入Schema
為了在一個(gè)XML文檔中聲明它所遵循的Schema文件的具體位置,通常需要在Xml文檔中的根結(jié)點(diǎn)中使用schemaLocation屬性來(lái)指定,例如: <atguigu:書架xmlns:atguigu="" xmlns:xsi="" xsi:schemaLocation=“book.xsd">schemaLocation此屬性有兩個(gè)值。第一個(gè)值是需要使用的命名空間。第二個(gè)值是供命名空間使用的XMLschema的位置,兩者之間用空格分隔。注意,在使用schemaLocation屬性時(shí),也需要指定該屬性來(lái)自哪里。Schema1文件xml文件Xmlns=“s2”Schema2文件Schema3文件s2s3s1概念:名稱空間使用默認(rèn)名稱空間
基本格式: xmlns="URI"
舉例: <書架xmlns="" xmlns:xsi="" xsi:schemaLocation=“book.xsd"> <書> <書名>JavaScript開(kāi)發(fā)</書名> <作者>老佟</作者> <售價(jià)>28.00元</售價(jià)> </書> <書架>引入多個(gè)XMLSchema文檔
文件清單:xmlbook.xml<?xml
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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年塑膠玩偶洋娃娃項(xiàng)目可行性研究報(bào)告
- 上門做飯勞務(wù)合同范本
- 2025年度新能源汽車融資租賃擔(dān)保合同范本
- 2025年度攪拌站砂石料綠色采購(gòu)及質(zhì)量控制協(xié)議
- 因懷孕停薪留職申請(qǐng)書
- 2025年中國(guó)貿(mào)易港行業(yè)市場(chǎng)調(diào)查研究及發(fā)展戰(zhàn)略規(guī)劃報(bào)告
- 2025年度員工離職經(jīng)濟(jì)補(bǔ)償協(xié)議范本
- 2025年度智能交通管理系統(tǒng)技術(shù)軟件開(kāi)發(fā)服務(wù)協(xié)議
- 2024-2030年中國(guó)數(shù)字傳輸設(shè)備行業(yè)市場(chǎng)發(fā)展現(xiàn)狀及投資潛力預(yù)測(cè)報(bào)告
- 杭州市淳安縣國(guó)有企業(yè)招聘筆試真題2024
- 2024政府采購(gòu)評(píng)審專家考試真題庫(kù)及答案
- 2025年道路貨運(yùn)駕駛員從業(yè)資格證模擬考試題
- 數(shù)學(xué)-安徽省皖南八校2025屆高三上學(xué)期12月第二次大聯(lián)考試題和答案
- 退市新規(guī)解讀-上海證券交易所、大同證券
- 融資報(bào)告范文模板
- 桃李面包盈利能力探析案例11000字
- GB/Z 30966.71-2024風(fēng)能發(fā)電系統(tǒng)風(fēng)力發(fā)電場(chǎng)監(jiān)控系統(tǒng)通信第71部分:配置描述語(yǔ)言
- 腦梗死的護(hù)理查房
- 2025高考數(shù)學(xué)專項(xiàng)復(fù)習(xí):概率與統(tǒng)計(jì)的綜合應(yīng)用(十八大題型)含答案
- 2024-2030年中國(guó)紫蘇市場(chǎng)深度局勢(shì)分析及未來(lái)5發(fā)展趨勢(shì)報(bào)告
評(píng)論
0/150
提交評(píng)論