版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、XML基礎(chǔ)及相關(guān)技術(shù)楊德婷中科院網(wǎng)絡(luò)中心2002.8.162002-8-16XML基礎(chǔ)及相關(guān)技術(shù)2 提 綱n山重水復(fù)疑無路,柳暗花明又一村山重水復(fù)疑無路,柳暗花明又一村 XML的誕生的誕生n沒有規(guī)矩,不成方圓XML語法n海納百川,有容乃大DTD與Scheman花想衣裳云想容XML文件的顯示n江山如畫,一時(shí)多少豪杰XML標(biāo)準(zhǔn)體系框架n千帆竟發(fā),百舸爭(zhēng)流關(guān)于XML的編輯與瀏覽工具n問蒼茫大地,誰主沉浮XML的應(yīng)用和發(fā)展前景2002-8-16XML基礎(chǔ)及相關(guān)技術(shù)3山重水復(fù)疑無路,柳暗花明又一村 XML的誕生n何謂XMLn為什么要XMLnXML的來龍去脈nXML實(shí)例2002-8-16XML基礎(chǔ)及相關(guān)技
2、術(shù)4何謂XML (eXtensible Markup Language) 什么是置標(biāo)語言(Markup Language)n超文本置標(biāo)語言HTML(HyperText Markup Language)nXML和HTML同屬一個(gè)大家族置標(biāo)語言家族n“置標(biāo)”的一個(gè)精確定義是:就數(shù)據(jù)本身的信息對(duì)數(shù)據(jù)進(jìn)行編碼的方法。nE.g.n用黃色熒光筆把課本上的 某些句子 加亮,或者干脆在 這這些句子些句子 下面劃線nHTMLnBOLDBOLD2002-8-16XML基礎(chǔ)及相關(guān)技術(shù)5何謂XML 什么是置標(biāo)語言(cont.)nHTML代碼顯示了一個(gè)客戶聯(lián)系信息列表: 張三用戶ID: 001公司: A公司EMAIL:
3、 電話: (010)62345678地址: 五街1234號(hào)城市: 北京市省份: 北京李四ID: 002公司: B公司EMAIL: 電話: (021)87654321地址: 南京路9876號(hào)城市: 上海市省份: 上海 這段HTML置標(biāo)數(shù)據(jù)在瀏覽器中的顯示效果如下:n張三 nID: 001 n公司: A公司 nEMAIL: n電話: (010)62345678 n地址: 五街1234號(hào) n城市: 北京市 n省份: 北京 n李四 nID: 002 n公司: B公司 nEMAIL: n電話: (021)87654321 n地址: 南京路9876號(hào) n城市: 上海市
4、 n省份: 上海 2002-8-16XML基礎(chǔ)及相關(guān)技術(shù)6何謂XML 什么是XMLneXtensible Markup LanguageneXtensible: XML是一種可擴(kuò)展的元置標(biāo)語言,它可用以規(guī)定新的置標(biāo)規(guī)則,并根據(jù)這個(gè)規(guī)則組織數(shù)據(jù)。n數(shù)據(jù)置標(biāo):一類偏重于語意描述;一類偏重于顯示方式的描述n置標(biāo)的語法:DTD , Scheman置標(biāo)的含義: CSS, XSL2002-8-16XML基礎(chǔ)及相關(guān)技術(shù)7何謂XML 什么是XML(cont.)n數(shù)據(jù)置標(biāo):一類偏重于語意描述;一類偏重于顯示方式的描述(SVG,SMIL)nFCLML(F_company s Client List Markup
5、Language) F公司的客戶列表置標(biāo)語言 ( 語義描述) 張三 001 A公司 (010)62345678 五街1234號(hào) 北京市 北京 李四 002 B公司 (021)87654321 南京路9876號(hào) 上海 上海 2002-8-16XML基礎(chǔ)及相關(guān)技術(shù)8何謂XML 什么是XML(cont.)n置標(biāo)的語法、句法和結(jié)構(gòu):DTD,Schemanfclml.dtd:n置標(biāo)的含義, 向應(yīng)用程序,比如瀏覽器,提供如何處理顯示的指示說明。nXSL,CSS1.每當(dāng)看到一個(gè)聯(lián)系人標(biāo)簽,用一個(gè)UL標(biāo)簽顯示它。同樣,/聯(lián)系人轉(zhuǎn)換為一個(gè)/UL標(biāo)簽。 2.所有的姓名標(biāo)簽被轉(zhuǎn)換為L(zhǎng)I標(biāo)簽加以顯
6、示。同樣,/姓名轉(zhuǎn)換LI標(biāo)簽。 3.所有的EMAIL標(biāo)簽被轉(zhuǎn)換為L(zhǎng)I標(biāo)簽加以顯示。同樣,/EMAIL轉(zhuǎn)換為/LI標(biāo)簽。2002-8-16XML基礎(chǔ)及相關(guān)技術(shù)9為什么要XML 仍從HTML說起 “從網(wǎng)絡(luò)使用之初,我們一直在所有文件中都使用近乎相同的格式,HTML格式.使用具有固定語法的固定標(biāo)記集具有一定的好處,即簡(jiǎn)單性。但是,HTML非常有限,網(wǎng)頁設(shè)計(jì)者希望能夠?qū)撁娴谋憩F(xiàn)能力具有更多的控制,這就需要求助于XML。” n專門為描述網(wǎng)頁的表現(xiàn)形式而設(shè)計(jì)的,疏于對(duì)信息語意及其內(nèi)部結(jié)構(gòu)的描述。n對(duì)形式的描述能力實(shí)際也還是非常不夠的,無法描述矢量圖形、科技符號(hào)和一些其它的特殊顯示效果。nIE和Netsc
7、ape都給HTML加入了一些特殊的標(biāo)記,以便為自己的瀏覽器增加一些特殊的顯示效果。 HTML的標(biāo)記日益臃腫,文件結(jié)構(gòu)混亂而缺乏條理,導(dǎo)致瀏覽器的設(shè)計(jì)越來越復(fù)雜, 還降低了不同瀏覽器之間的兼容性。n搜索時(shí)間長(zhǎng).n動(dòng)態(tài)內(nèi)容需要下載的部件太多。nHTML可擴(kuò)展性差.2002-8-16XML基礎(chǔ)及相關(guān)技術(shù)10為什么要XMLXML的第一大優(yōu)勢(shì)自由民主的網(wǎng)上世界n自由地制定你自己的標(biāo)記語言。n允許各個(gè)組織、個(gè)人建立適合他們自己需要的標(biāo)記庫,并且,這個(gè)標(biāo)記庫可以迅速地投入使用n允許各個(gè)不同的行業(yè)根據(jù)自己獨(dú)特的需要制定自己的一套標(biāo)記,但它并不強(qiáng)迫所有瀏覽器都能處理這些成千上萬個(gè)千奇百怪的標(biāo)記,同樣也不要求標(biāo)記
8、語言的制定者制定出一個(gè)非常詳盡非常全面的語言從而適合各個(gè)行業(yè)各個(gè)領(lǐng)域的應(yīng)用。n現(xiàn)在許多行業(yè)、機(jī)構(gòu)都利用XML定義了自己的標(biāo)記語言。比較早而且比較典型的是下面兩個(gè)實(shí)例: n化學(xué)標(biāo)記語言CML (Chemistry Markup Language)n數(shù)學(xué)標(biāo)記語言MathML (Mathematical Markup Language)2002-8-16XML基礎(chǔ)及相關(guān)技術(shù)11為什么要XML XML的第二大優(yōu)勢(shì)超越于格式之上n在HTML中,顯示方式內(nèi)嵌于數(shù)據(jù)之中n在這些數(shù)據(jù)中尋找信息非常困難n數(shù)據(jù)自身的邏輯不得不屈服于HTML語言規(guī)范的邏輯n張三用戶ID: 001公司: A公司EMAIL: 電話:
9、(010)62345678地址: 五街1234號(hào)城市: 北京市省份: 北京ZIP: 100001 n在XML中,顯示樣式從數(shù)據(jù)信息中抽取出來,放在樣式單文件中n在XML中數(shù)據(jù)搜索可以簡(jiǎn)單高效地進(jìn)行nXML是自我描述語言n 張三 001 A公司 (010)62345678 五街1234號(hào) 北京市 北京 100001 。2002-8-16XML基礎(chǔ)及相關(guān)技術(shù)12為什么要XML XML的其它優(yōu)點(diǎn)nXML遵循嚴(yán)格的語法要求 (與HTML相比)n不但要求標(biāo)記配對(duì)、嵌套,而且還要求嚴(yán)格遵守DTD的規(guī)定n提供較好的可讀性和可維護(hù)性n減輕了瀏覽器開發(fā)人員的負(fù)擔(dān),也提高了瀏覽器的時(shí)間空間效率nXML便于不同系統(tǒng)
10、之間信息的傳輸n各種不同的系統(tǒng)之間可以采用XML作為交流媒介。XML不但簡(jiǎn)單易讀,而且可以標(biāo)注各種文字、圖像甚至二進(jìn)制文件nXML具有較好的保值性2002-8-16XML基礎(chǔ)及相關(guān)技術(shù)13為什么要XML XML的一點(diǎn)缺陷?nXML固然好,但也有它不足的一面,阻礙了它的發(fā)展。而其中最大的不足,便是至今都沒有什么能夠充分支持它的應(yīng)用處理程序。n隨著越來越多的用戶看到將他們的數(shù)據(jù)用XML組織的好處后,相信XML的分析算法和相應(yīng)的工具也會(huì)逐漸完善起來,XML的后端支持將變得越來越簡(jiǎn)單。從IE和Netscape所提供的內(nèi)置XML分析工具中,我們還是看到了無限希望嘛!2002-8-16XML基礎(chǔ)及相關(guān)技術(shù)
11、14為什么要XML XML與HTML的比較2002-8-16XML基礎(chǔ)及相關(guān)技術(shù)15XML的來龍去脈 XML之發(fā)展史nXML的兩個(gè)先驅(qū)SGML和HTMLnSGML(Standard Generalized Markup Language)n它為語法置標(biāo)提供了異常強(qiáng)大的工具,同時(shí)具有極好的擴(kuò)展性,因此在分類和索引數(shù)據(jù)中非常有用。目前,SGML多用于科技文獻(xiàn)和政府辦公文件中。nSGML非常復(fù)雜,而且非常昂貴。nHTMLnHTML是一個(gè)非常簡(jiǎn)單的SGML語言,免費(fèi);獲得了廣泛的支持。nHTML有許多致命的弱點(diǎn),正如前面所分析的那樣。nXMLn國際互聯(lián)網(wǎng)論壇W3C(World Wide Web Con
12、sortium):為World Wide Web的發(fā)展開發(fā)通用的協(xié)議和標(biāo)準(zhǔn)。n既具有SGML的強(qiáng)大功能和可擴(kuò)展性,同時(shí)又具有HTML的簡(jiǎn)單性。SGML中所有非核心的、未被使用的和含義模糊的部分都被刪除,剩下的就成為短小精干的置標(biāo)工具XMLnW3C于1998年2月批準(zhǔn)了XML的1.0版本2002-8-16XML基礎(chǔ)及相關(guān)技術(shù)16XML的來龍去脈 置標(biāo)語言家族一覽2002-8-16XML基礎(chǔ)及相關(guān)技術(shù)17XML實(shí)例n為置標(biāo)語言FCLML制定的DTD fclml.dtd 2002-8-16XML基礎(chǔ)及相關(guān)技術(shù)18XML實(shí)例(cont.)n關(guān)于客戶聯(lián)系信息的標(biāo)準(zhǔn)XML文件 client.xml 張三
13、001 A公司 (010)62345678 五街1234號(hào) 北京市 北京 李四 002 B公司 (021)87654321 南京路9876號(hào) 上海 上海 2002-8-16XML基礎(chǔ)及相關(guān)技術(shù)19XML實(shí)例(cont.)n為client.xml制定一個(gè)樣式單mystyle.xsl F公司的客戶聯(lián)系信息 用戶ID: 公司: EMAIL: 電話: 街道: 城市: 省份: 2002-8-16XML基礎(chǔ)及相關(guān)技術(shù)20XML實(shí)例(cont.)nXML文件被樣式單轉(zhuǎn)換為下面的HTML文件F公司的客戶聯(lián)系信息 張三用戶ID: 001公司: A公司EMAIL: 電話: (010)62345
14、678地址: 五街1234號(hào)城市: 北京市省份: 北京 李四ID: 002公司: B公司EMAIL: 電話: (021)87654321地址: 南京路9876號(hào)城市: 上海市省份: 上海2002-8-16XML基礎(chǔ)及相關(guān)技術(shù)21XML實(shí)例(cont.)n所看到的顯示結(jié)果,實(shí)際上同上面這個(gè)HTML文件的顯示結(jié)果是相同的n張三 n用戶ID: 001 n公司: A公司 nEMAIL: n電話: (010)62345678 n地址: 五街1234號(hào) n城市: 北京市 n省份: 北京 n李四 nID: 002 n公司: B公司 nEMAIL: n電話: (021)8
15、7654321 n地址: 南京路9876號(hào) n城市: 上海市 n省份: 上海 2002-8-16XML基礎(chǔ)及相關(guān)技術(shù)22 提 綱n山重水復(fù)疑無路,柳暗花明又一村XML的誕生n沒有規(guī)矩,不成方圓沒有規(guī)矩,不成方圓XML語法語法n海納百川,有容乃大DTD與Scheman花想衣裳云想容XML文件的顯示n江山如畫,一時(shí)多少豪杰XML標(biāo)準(zhǔn)體系框架n千帆竟發(fā),百舸爭(zhēng)流關(guān)于XML的編輯與瀏覽工具n問蒼茫大地,誰主沉浮XML的應(yīng)用和發(fā)展前景2002-8-16XML基礎(chǔ)及相關(guān)技術(shù)23沒有規(guī)矩,不成方圓 XML語法n什么是什么是“形式良好的形式良好的”XML文件文件nXML文件的邏輯結(jié)構(gòu)nXML文件的整體結(jié)構(gòu)n用
16、XML聲明作為開頭nXML文件的精髓XML元素nXML元素n字符數(shù)據(jù)n標(biāo)記nCDATAn注釋n處理指示nXML文件的物理結(jié)構(gòu)n實(shí)體n實(shí)體的兩種類型n實(shí)體的使用方式2002-8-16XML基礎(chǔ)及相關(guān)技術(shù)24什么是“形式良好的”XML文件nXML是一個(gè)元置標(biāo)語言,可以看作是用來產(chǎn)生置標(biāo)語言的工具。因此,XML并沒有預(yù)定義一個(gè)特定的標(biāo)記集,而是描述了一個(gè)用來定義標(biāo)記集的方法。當(dāng)我們用這個(gè)方法規(guī)定好一個(gè)標(biāo)記集,并根據(jù)這些規(guī)定填入文本內(nèi)容后,這些標(biāo)記就和純文本一起構(gòu)成了一個(gè)XML文件。nXML文件實(shí)際上是廣義的文件,更準(zhǔn)確的叫法應(yīng)該是一個(gè)“數(shù)據(jù)對(duì)象”,但是為了簡(jiǎn)便起見,我們?nèi)苑Q它為“文件”。n在XML中
17、,“形式良好”(well-formed)有著明確的標(biāo)準(zhǔn),即是要遵要遵守守XML1.0規(guī)范中的語法規(guī)則規(guī)范中的語法規(guī)則。無論是從物理結(jié)構(gòu)上講,還是從邏輯結(jié)構(gòu)上講,XML都必須符合規(guī)范,才能被正確解釋處理。nXML創(chuàng)建之初的目標(biāo)就是希望XML文件既容易被人閱讀,又容易被機(jī)器理解。所以,確保你的文件是“形式良好的”,這是一個(gè)最低標(biāo)準(zhǔn),符合了這個(gè)標(biāo)準(zhǔn),就能保證連最笨的機(jī)器也能閱讀你的XML文件了。保證了XML嚴(yán)密的條理性、邏輯性和良好的結(jié)構(gòu)性,XML的優(yōu)點(diǎn)也正是依靠它們體現(xiàn)出來的。2002-8-16XML基礎(chǔ)及相關(guān)技術(shù)25沒有規(guī)矩,不成方圓 XML語法n什么是“形式良好的”XML文件nXML文件的邏輯
18、結(jié)構(gòu)文件的邏輯結(jié)構(gòu)nXML文件的整體結(jié)構(gòu)文件的整體結(jié)構(gòu)n用用XML聲明作為開頭聲明作為開頭nXML文件的精髓文件的精髓XML元素元素nXML元素元素n字符數(shù)據(jù)字符數(shù)據(jù)n標(biāo)記標(biāo)記nCDATAn注釋注釋n處理指示處理指示nXML文件的物理結(jié)構(gòu)n實(shí)體n實(shí)體的兩種類型n實(shí)體的使用方式2002-8-16XML基礎(chǔ)及相關(guān)技術(shù)26XML文件的邏輯結(jié)構(gòu) XML的整體結(jié)構(gòu)n1 2 3 4 5 XML 6 XML是一種可擴(kuò)展的源置標(biāo)語言,它可用以規(guī)定新的置標(biāo)規(guī)則,并根據(jù)這個(gè)規(guī)則組織數(shù)據(jù)7 8 9 !CDATA10 11 張三12 13 14 15 16 17nXML文件最基本的構(gòu)成nXML聲明:1n處理指示(可選
19、): 12nXML元素:317n標(biāo)記: e.g. 5 n字符數(shù)據(jù):e.g. 5 “XML”nCDATA: 914n注釋:82002-8-16XML基礎(chǔ)及相關(guān)技術(shù)27XML文件的邏輯結(jié)構(gòu) 用XML聲明作為開頭n當(dāng)寫一個(gè)XML文件時(shí),最好以一個(gè)XMLXML聲明聲明作為開始。XML聲明在文件中是可選內(nèi)容,但W3C推薦加入這一行聲明。因此,作為一個(gè)良好的習(xí)慣,我們通常把XML聲明作為XML文件的第一行。nXML聲明是處理指示的一種。它的作用就是告訴XML處理程序:“下面這個(gè)文件是按照XML文件的標(biāo)準(zhǔn)對(duì)數(shù)據(jù)進(jìn)行置標(biāo)的”。n一個(gè)完整的XML聲明是: ?encoding=“GB2312”?nXML聲明由“”
20、結(jié)束。在“?”后面緊跟著處理指示的名稱 “xml”。2002-8-16XML基礎(chǔ)及相關(guān)技術(shù)28XML文件的邏輯結(jié)構(gòu) 用XML聲明作為開頭(cont.)? version=“1.0” standalone=“no” encoding=“GB2312”?n三個(gè)屬性nversion屬性n在一個(gè)XML的處理指示中必須包括version屬性指明所采用的XML的版本號(hào),而且,它必須在屬性列表中排在第一位。當(dāng)前的XML最新版本是1.0.nstandalone屬性 (可選)n這個(gè)屬性表明該XML文件是否和一個(gè)獨(dú)立的置標(biāo)聲明文件配套使用。因此,如果該屬性置為“yes”,說明沒有另外一個(gè)配套的DTD文件來進(jìn)行置標(biāo)
21、聲明。相反,如果這個(gè)屬性置為“no”,則有可能有這樣一個(gè)文件。nencoding屬性 (可選)n所有的XML語法分析器都要支持8位和16位的編碼標(biāo)準(zhǔn)。n幾個(gè)常見的編碼: 簡(jiǎn)體中文碼(GB2312)、繁體中文碼(BIG5)、西歐字符(UTF-8)2002-8-16XML基礎(chǔ)及相關(guān)技術(shù)29XML文件的邏輯結(jié)構(gòu) XML元素n元素的形式:數(shù)據(jù)內(nèi)容數(shù)據(jù)內(nèi)容n元素中還可以再嵌套別的元素n所有的XML文件都至少包含一個(gè)形式良好的根元素。根元素,又稱為文件標(biāo)記,緊跟在XML聲明之后,如果該XML文件中還內(nèi)嵌了DTD,則這個(gè)根標(biāo)記緊跟在DTD之后。根標(biāo)記必須是一個(gè)非空的標(biāo)記,其中包含了整個(gè)文件的數(shù)據(jù)內(nèi)容。 nX
22、ML中開始和結(jié)束標(biāo)記之間的文字稱作“字符數(shù)據(jù)”,而把置標(biāo)內(nèi)的標(biāo)示文字稱作“標(biāo)記”。2002-8-16XML基礎(chǔ)及相關(guān)技術(shù)30XML文件的邏輯結(jié)構(gòu) 字符數(shù)據(jù)n一對(duì)標(biāo)記之間出現(xiàn)的字符數(shù)據(jù)可以是任何合法的UNICODE字符n為了避免把字符數(shù)據(jù)和標(biāo)記中需要用到的一些特殊符號(hào)相混淆,XML還提供了一些有用的實(shí)體引用。當(dāng)在字符數(shù)據(jù)中需要使用這些特殊符號(hào)時(shí),我們采用它的實(shí)體引用來代替。n在“示例”這個(gè)標(biāo)記中出現(xiàn)文本:“張三”n示例<姓名>張三</姓名>/示例n寫為:n字符&“實(shí)體引用><&&q
23、uot;'2002-8-16XML基礎(chǔ)及相關(guān)技術(shù)31XML文件的邏輯結(jié)構(gòu) 標(biāo)記nXML的標(biāo)記和HTML的標(biāo)記在模樣上大體相同,除了注釋和CDATA部分以外,所有符號(hào)“”和符號(hào)“”之間的內(nèi)容都稱為標(biāo)記。其基本形式為: 標(biāo)記名標(biāo)記名 (屬性名(屬性名=“=“屬性取值屬性取值”)* *nXML對(duì)于標(biāo)記的語法規(guī)定比HTML要嚴(yán)格得多n標(biāo)記必不可少n大小寫有所區(qū)分n要有正確的結(jié)束標(biāo)記。n結(jié)束標(biāo)記除了要和開始標(biāo)記在拼寫和大小寫上完全相同,還必須在前面加上一個(gè)斜杠“/”。如果開始標(biāo)記是HELLO,結(jié)束標(biāo)記應(yīng)該寫作/HELLO。n當(dāng)一對(duì)標(biāo)記之間沒有任何文本內(nèi)容時(shí),可以不寫結(jié)束標(biāo)記,而在開始標(biāo)
24、記的最后慣以斜杠“/”來確認(rèn)。這樣的標(biāo)記稱為“空標(biāo)記”。如:n標(biāo)記要正確嵌套2002-8-16XML基礎(chǔ)及相關(guān)技術(shù)32XML文件的邏輯結(jié)構(gòu) 標(biāo)記(cont.)n標(biāo)記命名要合法n標(biāo)記應(yīng)該以字母、下劃線“_”或冒號(hào)“:”開頭,后面跟字母、數(shù)字、句號(hào)“.”、冒號(hào)、下劃線或連字符“-”,但是中間不能有空格,而且任何標(biāo)記不能以“xml”起始。另外,最好不要在標(biāo)記的開頭使用冒號(hào),盡管它是合法的,但可能會(huì)帶來混淆。n在XML1.0標(biāo)準(zhǔn)中允許使用任何長(zhǎng)度的標(biāo)記,不過,現(xiàn)實(shí)中的XML處理程序可能會(huì)要求標(biāo)記的長(zhǎng)度限制在一定范圍內(nèi)。 n有效使用屬性n標(biāo)記中可以包含任意多個(gè)屬性。在標(biāo)記中,屬性以名稱/取值對(duì)出現(xiàn),屬性
25、名不能重復(fù),名稱與取值之間用等號(hào)“=”分隔,且取值用引號(hào)引起來。 如:n屬性命名的規(guī)范與標(biāo)記命名規(guī)范大體相似,需要注意有效字母、大小寫等一系列問題。不過,在必要的時(shí)候,屬性中也可以包含空白符,標(biāo)點(diǎn)和實(shí)體引用。需要特別注意的是,在XML中屬性的取值必須用引號(hào)引起來,但在HTML中這一點(diǎn)并不嚴(yán)格要求。n屬性的所有賦值都被看作是字符串。如: 圓柱體 半徑=“10” 高=“13”程序應(yīng)該能夠把字符串“10”和“13”轉(zhuǎn)化為它們所代表的數(shù)字。2002-8-16XML基礎(chǔ)及相關(guān)技術(shù)33XML文件的邏輯結(jié)構(gòu) CDATAn在一個(gè)特殊的標(biāo)記CDATA下,所有的標(biāo)記、實(shí)體引用都被忽略,而被XML處理程序一視同仁地
26、當(dāng)作字符數(shù)據(jù)看待。CDATA的形式如下: !CDATA CDATA 文本內(nèi)容文本內(nèi)容 nCDATA的文本內(nèi)容中是不能出現(xiàn)字符串“”當(dāng)你的文本數(shù)據(jù)中包含大量特殊符號(hào)時(shí),你不得不通篇地使用實(shí)體引用,把本來很清晰的一段文字搞得亂七八糟。 <聯(lián)系人> <姓名>張三</姓名> <EMAIL></EMAIL> </聯(lián)系人>為了避免這種不便,你可以把這些字符數(shù)據(jù)放在一個(gè)CDATA數(shù)據(jù)塊中,這樣不管它看上去是一個(gè)標(biāo)記還是一個(gè)實(shí)體引用,這些數(shù)據(jù)統(tǒng)
27、統(tǒng)被當(dāng)作字符照單全收。 !CDATA 張三 2002-8-16XML基礎(chǔ)及相關(guān)技術(shù)34XML文件的邏輯結(jié)構(gòu) 注釋n在HTML中,注釋是用“!-”和“-”引起來的。在XML中,注釋的方法完全相同。如: nXML處理器對(duì)于注釋中的一切內(nèi)容都會(huì)視而不見,注釋中出現(xiàn)的標(biāo)記也一同被忽略。n在XML文件中使用注釋時(shí),同樣要遵守幾個(gè)規(guī)則n在注釋文本中不能出現(xiàn)字符“-”或字符串“-”n不要把注釋文本放在標(biāo)記之中,否則,它就不是一個(gè)“形式良好的”XML文件了。類似地,不要把注釋文本放在實(shí)體聲明中,也不要放在XML聲明之前。n注釋不能被嵌套。2002-8-16XML基礎(chǔ)及相關(guān)技術(shù)35XML文件的邏輯結(jié)構(gòu) 處理指示
28、n處理指示是用來給處理XML文件的應(yīng)用程序提供信息的。也就是說,XML分析器可能對(duì)它并不感興趣,而把這些信息原封不動(dòng)地傳給XML應(yīng)用程序。然后,這個(gè)應(yīng)用程序來解釋這個(gè)指示,遵照它所提供的信息進(jìn)行處理,或者再把它原封不動(dòng)地傳給下一個(gè)應(yīng)用程序。正如我們前面看到的,XML聲明就是一個(gè)處理指示。n所有的處理指示應(yīng)該遵循下面的格式: ?處理指示名?處理指示名 處理指示信息?處理指示信息?n一個(gè)處理指示來指定與這個(gè)XML文件配套使用的樣式單的類型及文件名: 2002-8-16XML基礎(chǔ)及相關(guān)技術(shù)36沒有規(guī)矩,不成方圓 XML語法n什么是“形式良好的”XML文件nXML文件的邏輯結(jié)構(gòu)nXML文件的整體結(jié)構(gòu)n
29、用XML聲明作為開頭nXML文件的精髓XML元素nXML元素n字符數(shù)據(jù)n標(biāo)記nCDATAn注釋n處理指示nXML文件的物理結(jié)構(gòu)文件的物理結(jié)構(gòu)n實(shí)體實(shí)體n實(shí)體的兩種類型實(shí)體的兩種類型n實(shí)體的使用方式實(shí)體的使用方式2002-8-16XML基礎(chǔ)及相關(guān)技術(shù)37XML文件的物理結(jié)構(gòu) 實(shí)體n從物理結(jié)構(gòu)上講,XML文件歸根結(jié)底是由一組“實(shí)體”構(gòu)成的。n實(shí)體充當(dāng)著和別名類似的角色。即,一個(gè)簡(jiǎn)單的實(shí)體名稱可以用來代表一大段文本內(nèi)容。象任何計(jì)算機(jī)別名系統(tǒng)一樣,實(shí)體引用簡(jiǎn)化了你的錄入工作,因?yàn)槊慨?dāng)你要使用那一大段文本時(shí),你只須使用它的別名就可以了,處理器會(huì)自動(dòng)為你把這個(gè)別名替換為相應(yīng)的文本。n所有的XML文件都包含
30、了一個(gè)“根實(shí)體”,又稱作“文件實(shí)體”。這個(gè)實(shí)體是由XML本身給出的,無須顯式定義就可以使用,它指的其實(shí)就是整個(gè)文件的內(nèi)容。假如你為你的信件署名定義了一個(gè)實(shí)體lettersign,它代表下面這一大段文本:張三 某網(wǎng)絡(luò)公司銷售部門 北京市海淀區(qū)中關(guān)村88號(hào),100000信件 收件人李四/收件人 主題hello/主題 正文hello!&lettersign&lettersign ;/正文/信件2002-8-16XML基礎(chǔ)及相關(guān)技術(shù)38XML文件的物理結(jié)構(gòu) 實(shí)體的兩種類型n一般實(shí)體n定義一般實(shí)體的格式 !ENTITY !ENTITY 實(shí)體名實(shí)體名 “ “文本內(nèi)容文本內(nèi)容”n也可以指定一
31、個(gè)實(shí)體代替一個(gè)外部文件的內(nèi)容,此時(shí)要使用SYSTEM這個(gè)關(guān)鍵字。n參數(shù)實(shí)體n參數(shù)實(shí)體既可以是內(nèi)部的也可以是外部的。不過,參數(shù)實(shí)體只用在DTD中。參數(shù)實(shí)體的格式與一般實(shí)體很類似,只不過中間要加上“%”符。 !ENTITY % !ENTITY % 實(shí)體名實(shí)體名 文本內(nèi)容文本內(nèi)容 !ENTITY lettersign張三某網(wǎng)絡(luò)公司銷售部門北京市海淀區(qū)中關(guān)村88號(hào),100000!ENTITY lettersignSYSTEM http:/ 2002-8-16XML基礎(chǔ)及相關(guān)技術(shù)39XML文件的物理結(jié)構(gòu) 實(shí)體的使用方式n實(shí)體聲明n對(duì)于實(shí)體的聲明應(yīng)該放在文件類型DOCTYPE中。DOCTYPE一般放在文件
32、頭(即XML聲明和DTD)之后,XML元素之前。n實(shí)體引用n一般實(shí)體 & &實(shí)體名;實(shí)體名;n參數(shù)實(shí)體 % %實(shí)體名;實(shí)體名;n實(shí)體引用的幾點(diǎn)規(guī)則n在引用XML實(shí)體之前,必須已經(jīng)在XML文件中對(duì)此實(shí)體進(jìn)行過聲明; n在實(shí)體引用中不能出現(xiàn)空格。也就是說,& lettersign;和&letterhead ;的用法都會(huì)引起錯(cuò)誤。 n盡管在一個(gè)實(shí)體中可以再引用其它實(shí)體,但是不能出現(xiàn)循環(huán)引用。也就是說,一個(gè)實(shí)體不能引用它自己;同樣,也不能出現(xiàn)實(shí)體A引用實(shí)體B,然后實(shí)體B再反過來引用實(shí)體A的情況。 n實(shí)體引用不能在DOCTYPE聲明中出現(xiàn)。 n實(shí)體引用的文本必須是形式良好
33、的XML。 具體數(shù)據(jù)內(nèi)容2002-8-16XML基礎(chǔ)及相關(guān)技術(shù)40XML文件的物理結(jié)構(gòu) 實(shí)體的使用方式n實(shí)體引用不僅可以出現(xiàn)在字符數(shù)據(jù)中,還可以出現(xiàn)在標(biāo)記的屬性中。如: n如果在屬性中出現(xiàn)實(shí)體引用,不但要遵守前面所述的實(shí)體引用的種種規(guī)則,還要注意以下兩點(diǎn): n在標(biāo)記屬性中不能引用一個(gè)外部實(shí)體。n引用的文本中不能出現(xiàn)字符“”,否則替換后就不再是一個(gè)“形式良好的”XML文件了。 !DOCTYPE 聯(lián)系人列表 張三 A公司 &A公司地址; 李四 B公司 &B公司地址;/地址 王五 B公司 &B公司地址;/地址 2002-8-16XML基礎(chǔ)及相關(guān)技術(shù)41 提 綱n山重水復(fù)疑無路
34、,柳暗花明又一村XML的誕生n沒有規(guī)矩,不成方圓XML語法n海納百川,有容乃大海納百川,有容乃大DTD與與Scheman花想衣裳云想容XML文件的顯示n江山如畫,一時(shí)多少豪杰XML標(biāo)準(zhǔn)體系框架n千帆竟發(fā),百舸爭(zhēng)流關(guān)于XML的編輯與瀏覽工具n問蒼茫大地,誰主沉浮XML的應(yīng)用和發(fā)展前景2002-8-16XML基礎(chǔ)及相關(guān)技術(shù)42海納百川,有容乃大 DTD與SchemanDTD 的定義的定義nSchema的定義nXML命名空間2002-8-16XML基礎(chǔ)及相關(guān)技術(shù)43DTD的定義nDTD的基本結(jié)構(gòu)的基本結(jié)構(gòu)nDTD引入引入“有效的有效的”XML文件中文件中n內(nèi)部?jī)?nèi)部DTDn外部外部DTDn公用公用DT
35、Dn定義元素及其后代n元素類型聲明n定義元素及其子元素n有順序的子元素n重復(fù)元素n成組元素nOR或n可選子元素n混合內(nèi)容n空元素n定義元素屬性n定義有效的元素屬性n屬性缺省值n屬性類型nCDATA類型n枚舉類型nID和IDREFnNMTOKEN和NMTOKENSnNOTATION類型n實(shí)體屬性類型與參數(shù)實(shí)體nDublin Core Metadata DTD2002-8-16XML基礎(chǔ)及相關(guān)技術(shù)44DTD的基本結(jié)構(gòu) DTD引入“有效的”XML文件中n一個(gè)“有效的”(valid)文件首先應(yīng)該是“形式良好”(well-formed)的。還必須遵守文件類型描述DTD(Document Type Def
36、inition)中定義的種種規(guī)定。nDTD實(shí)際上是“元標(biāo)記”這個(gè)概念的產(chǎn)物,它描述了一個(gè)置標(biāo)語言的語法和詞匯表,也就是定義了文件的整體結(jié)構(gòu)以及文件的語法。簡(jiǎn)而言之,DTD規(guī)定了一個(gè)語法分析器為了解釋一個(gè)“有效的”XML文件所需要知道的所有規(guī)則的細(xì)節(jié)。n為了說明特定的語法規(guī)則,DTD采用了一系列正則式,語法分析器將這些正則式與XML文件內(nèi)部的數(shù)據(jù)模式相匹配,從而判別一個(gè)文件是否是有效的。n一個(gè)“有效的”XML文件就是一個(gè)“形式良好的”SGML文件,也就是說,符合DTD中定義的語法是SGML文件的基本要求。從這個(gè)意義上說,XML把合法文件的范圍擴(kuò)大了,既包括“有效的”XML,也可包括“形式良好的”
37、XML。2002-8-16XML基礎(chǔ)及相關(guān)技術(shù)45DTD的基本結(jié)構(gòu) 內(nèi)部DTDn最簡(jiǎn)單的使用DTD的方法是在XML文件的序言部分加入一個(gè)DTD描述,加入的位置是緊接在XML處理指示之后。一個(gè)包含DTD的XML文件的結(jié)構(gòu)為:n文件體.nclient.xml!DOCTYPE 聯(lián)系人列表 張三 001 A公司 (010)62345678 五街1234號(hào) 北京市 北京 李四 2002-8-16XML基礎(chǔ)及相關(guān)技術(shù)46DTD的基本結(jié)構(gòu) 外部DTDn外部DTD的好處是:它可以方便高效地被多個(gè)XML文件所共享。當(dāng)許多組織需要統(tǒng)一它們的數(shù)據(jù)交換格式時(shí),它們就是通過外部DTD來完成的。n這樣做不僅簡(jiǎn)化了輸入工作
38、,還保證當(dāng)你需要對(duì)DTD做出改動(dòng)時(shí),不用一一去改每個(gè)引用了它的XML文件,只要改一個(gè)公用的DTD文件就足夠了。n引用一個(gè)外部DTD,必須修改XML聲明和DOCTYPE聲明。nnn舉例nnn2002-8-16XML基礎(chǔ)及相關(guān)技術(shù)47DTD的基本結(jié)構(gòu) 外部DTDnn張三001A公司(010)62345678五街1234號(hào)北京市北京100001李四002B公司(021)87654321南京路9876號(hào)上海上海2000022002-8-16XML基礎(chǔ)及相關(guān)技術(shù)48DTD的基本結(jié)構(gòu) 公用DTDnSYSTEM不是引用外部DTD的唯一方法,這個(gè)關(guān)鍵字主要用于引用一個(gè)作者或組織所編寫的眾多X
39、ML文件中通用的DTD。還存在一種外部DTD,它是一個(gè)由權(quán)威機(jī)構(gòu)制訂的,提供給特定行業(yè)或公眾使用的DTD。因此,另一個(gè)引用外部DTD的辦法是使用關(guān)鍵字PUBLIC,引用這一類公開給公眾使用的DTD。n當(dāng)使用關(guān)鍵字PUBLIC進(jìn)行引用時(shí),這個(gè)外部DTD還需要得到一個(gè)標(biāo)識(shí)名。引用公共DTD的形式為 !DOCTYPE URL2002-8-16XML基礎(chǔ)及相關(guān)技術(shù)49DTD的基本結(jié)構(gòu) 公用DTD(cont.)nDTD名稱只能包含字母、數(shù)字、空格和下面的符號(hào):_%$#()+:=/!*;?。同時(shí),DTD名稱還必須符合一些標(biāo)準(zhǔn)的規(guī)定。例如,ISO標(biāo)準(zhǔn)的DTD以“ISO”三個(gè)字母開頭;被改進(jìn)的非ISO標(biāo)準(zhǔn)的D
40、TD以加號(hào)“+”開頭;未被改進(jìn)的非ISO標(biāo)準(zhǔn)的DTD以減號(hào)“-”開頭。n無論是哪一種情況,開始部分后面都跟著兩個(gè)斜杠“/”及DTD所有者的名稱。在這個(gè)名稱之后又是兩個(gè)斜杠“/”,再然后是DTD所描述的文件的類型。最后,在又一對(duì)斜杠之后是語言的種類(參見ISO 639)。n2002-8-16XML基礎(chǔ)及相關(guān)技術(shù)50DTD的定義nDTD的基本結(jié)構(gòu)nDTD引入“有效的”XML文件中n內(nèi)部DTDn外部DTDn公用DTDn定義元素及其后代定義元素及其后代n元素類型聲明元素類型聲明n定義元素及其子元素定義元素及其子元素n有順序的子元素有順序的子元素n重復(fù)元素重復(fù)元素n成組元素成組元素nOR或或n可選子元素
41、可選子元素n混合內(nèi)容混合內(nèi)容n空元素空元素n定義元素屬性n定義有效的元素屬性n屬性缺省值n屬性類型nCDATA類型n枚舉類型nID和IDREFnNMTOKEN和NMTOKENSnNOTATION類型n實(shí)體屬性類型與參數(shù)實(shí)體nDublin Core Metadata DTD2002-8-16XML基礎(chǔ)及相關(guān)技術(shù)51定義元素及其后代 元素類型聲明(ETD)nETD不但說明了每個(gè)文件中可能存在的元素,給出了元素的名字,而且給出了元素的具體類型。一個(gè)XML元素可以為空,也可以是一段純文本,還可以有若干個(gè)子元素,而這些子元素同時(shí)又可以有它們的子元素。DTD正是通過元素之間的父子關(guān)系,描述了整個(gè)文件的結(jié)構(gòu)
42、關(guān)系。nETD應(yīng)該采用如下的結(jié)構(gòu): !ELEMENT !DOCTYPE 聯(lián)系人列表 張三 2002-8-16XML基礎(chǔ)及相關(guān)技術(shù)52定義元素及其后代 元素類型聲明(cont.)n注意1.除了根元素外,在定義其它元素時(shí)使用關(guān)鍵字ANY都是不好的習(xí)慣。一個(gè)定義明確的DTD,實(shí)際上會(huì)使你在書寫XML文件時(shí)有規(guī)可循,方便了你的工作和語法分析器的工作。2.在定義元素時(shí),ETD的順序是無關(guān)緊要的。3.不能對(duì)不同的元素使用相同的元素名,即便這些元素的內(nèi)容、包含的子元素不同也不行,因?yàn)樗粫?huì)引起文件各個(gè)元素的混淆,使文件的可讀性大打折扣。4.元素名的第一個(gè)字母必須是字母、或下劃線(_)、或冒號(hào)(:),后跟字母
43、、數(shù)字、句號(hào)(.)、冒號(hào)、下劃線、連結(jié)號(hào)(-)的組合,并且不能包含空白符,不能以“xml”開頭。5.盡管XML1.0標(biāo)準(zhǔn)允許使用任何長(zhǎng)度的文件名,但是實(shí)際的XML處理器常常會(huì)限制標(biāo)記名的長(zhǎng)度。 2002-8-16XML基礎(chǔ)及相關(guān)技術(shù)53定義元素及其后代 定義元素及其子元素n元素定義是由它們的元素內(nèi)容模型(ECM)來描述的,也就是說,是由緊跟元素后面的括號(hào)中的內(nèi)容來定義的。nECM中的內(nèi)容采取一組正則表達(dá)式的形式。元字符定義+出現(xiàn)一次或多次*出現(xiàn)零次或多次?可選,不出現(xiàn)或出現(xiàn)一次( )一組要共同匹配的表達(dá)式|OR,或,AND,要求嚴(yán)格遵從順序要求元素A元素B元素C元素列表,無須遵從順序要求200
44、2-8-16XML基礎(chǔ)及相關(guān)技術(shù)54定義元素及其后代 有順序的子元素n一個(gè)元素的各個(gè)子元素之間可以以任意順序出現(xiàn),也可以強(qiáng)制遵循一定的順序。 n不要求順序的子元素:用空格分隔子元素n要求順序的子元素:用逗號(hào)“,”分隔兩個(gè)子元素 張三 張三2002-8-16XML基礎(chǔ)及相關(guān)技術(shù)55定義元素及其后代 重復(fù)元素 張三 張三2002-8-16XML基礎(chǔ)及相關(guān)技術(shù)56定義元素及其后代 成組元素n子元素可以使用括號(hào)并為一組。 張三 李四 王五 2002-8-16XML基礎(chǔ)及相關(guān)技術(shù)57定義元素及其后代 OR或 張三 張三 12345678 張三 張三 12345
45、678 張三 在一個(gè)組中,只允許使用一種連接符(例如“,”或“|”)。2002-8-16XML基礎(chǔ)及相關(guān)技術(shù)58定義元素及其后代 可選子元素n 張三 五街1234號(hào) 北京市 北京 張三 2002-8-16XML基礎(chǔ)及相關(guān)技術(shù)59定義元素及其后代 混合內(nèi)容!DOCTYPE CONTACTS 張三 (010)62345678 這是關(guān)于張三的信息 2002-8-16XML基礎(chǔ)及相關(guān)技術(shù)60定義元素及其后代 空元素n還有一種情況是,一個(gè)元素中不包含任何子元素,也不包含純文本。n對(duì)于這種情況,我們可以定義一個(gè)空標(biāo)記。當(dāng)然,定義這樣一個(gè)標(biāo)記很簡(jiǎn)單,你只需要使用關(guān)鍵字EMPTYEMPTY就可以了,例如: n
46、這樣,在你的XML文件中,就可以使用一個(gè)空元素。2002-8-16XML基礎(chǔ)及相關(guān)技術(shù)61DTD的定義nDTD的基本結(jié)構(gòu)nDTD引入“有效的”XML文件中n內(nèi)部DTDn外部DTDn公用DTDn定義元素及其后代n元素類型聲明n定義元素及其子元素n有順序的子元素n重復(fù)元素n成組元素nOR或n可選子元素n混合內(nèi)容n空元素n定義元素屬性定義元素屬性n定義有效的元素屬性定義有效的元素屬性n屬性缺省值屬性缺省值n屬性類型屬性類型nCDATA類型類型n枚舉類型枚舉類型nID和和IDREFnNMTOKEN和和NMTOKENSnNOTATION類型類型n實(shí)體屬性類型與參數(shù)實(shí)體實(shí)體屬性類型與參數(shù)實(shí)體nDublin
47、 Core Metadata DTD2002-8-16XML基礎(chǔ)及相關(guān)技術(shù)62定義元素屬性 定義有效的元素屬性n n在DTD中定義屬性時(shí),我們使用下面的格式: !ATTLIST n元素名是屬性所屬的元素的名字;屬性名是屬性的命名;缺省值說明在XML文件中,如果沒有特別說明屬性的取值,語法分析器默認(rèn)它具有的取值;屬性類型則用來指定該屬性是屬于十個(gè)有效屬性類型中的哪種類型。n注意:注意:由于ATTLIST是一個(gè)屬性的列表,它可以包含很多屬性,在實(shí)際應(yīng)用中,一個(gè)元素也經(jīng)常有多個(gè)屬性。n2002-8-16XML基礎(chǔ)及相關(guān)技術(shù)63定義元素屬性 屬性缺省值n必須賦值的屬性 REQUIREDn不用提供缺省值
48、。 n屬性值可有可無的屬性 IMPLIEDn文法解釋器不再強(qiáng)行要求你在XML文件中給該屬性賦值,而且也無須在DTD中為該屬性提供缺省值。可以說,這是對(duì)屬性值有無的最低要求,現(xiàn)實(shí)中經(jīng)常用到。 n固定取值的屬性 FIXEDn提供一個(gè)缺省值,并且不希望XML文件的編寫者把你的缺省值替代掉。n定義缺省值的屬性n不使用上面任何一種關(guān)鍵字的話,該種屬性就是屬于這種類型。對(duì)于這種屬性,你需要在DTD中為它提供一個(gè)缺省值。而在XML文件中可以為該屬性給出新的屬性值來覆蓋事先定義的缺省值,也可以不另外給出屬性值,后一種情況下它就默認(rèn)為采用DTD中給出的缺省值。 2002-8-16XML基礎(chǔ)及相關(guān)技術(shù)64定義元素
49、屬性 屬性類型n一個(gè)元素屬性可以為以下十種類型中的任意一種:nCDATA nEnumerated nID nIDREF nIDREFS nENTITY nENTITIES nNMTOKEN nNMTOKENS nNOTATION 2002-8-16XML基礎(chǔ)及相關(guān)技術(shù)65定義元素屬性 CDATA類型nCDATA指的是純文本,即由字符、符號(hào)“&”、小于號(hào)“”和引號(hào)“”組成的字符串。n!DOCTYPE 劇本 我可不這么認(rèn)為! 為什么呢?2002-8-16XML基礎(chǔ)及相關(guān)技術(shù)66定義元素屬性 枚舉類型n屬性也可以被描述為一組可接受的取值的列表,XML文件中對(duì)屬性的賦值將從這個(gè)列表中選取一個(gè)值
50、。這類屬性屬于枚舉類型ENUMERATED,不過,關(guān)鍵字ENUMERATED是不出現(xiàn)在DTD定義中的。n!DOCTYPE 購物籃 2002-8-16XML基礎(chǔ)及相關(guān)技術(shù)67定義元素屬性 ID類型nID是用屬性值的方式為文件中的某個(gè)元素定義唯一標(biāo)識(shí)的方法,它的作用類似于HTML文件中的內(nèi)部鏈接。在大多數(shù)情況下,ID由處理文件的程序或腳本語言使用。nID的值必須是一個(gè)有效的XML名稱,它由字母、數(shù)字或下劃線開始,名字中不能出現(xiàn)空白符。n另外一般而言,不要給ID類型的屬性事先指定缺省值,這很容易引起不同的元素具有相同的標(biāo)識(shí)的情況,更不能使用FIXED型的缺省值。此類屬性經(jīng)常使用REQUIRED缺省類
51、型,當(dāng)然,這也不是必須的。有的應(yīng)用并不要求每個(gè)元素都有自己的標(biāo)識(shí),所以,也可以使用IMPLIED缺省類型。n!DOCTYPE 聯(lián)系人列表 張三 李四 2002-8-16XML基礎(chǔ)及相關(guān)技術(shù)68定義元素屬性 IDREF類型nIDREF類型允許一個(gè)元素的屬性使用文件中的另一個(gè)元素,方法就是把那個(gè)元素的ID標(biāo)識(shí)值作為該屬性的取值。n!DOCTYPE 聯(lián)系人列表 張三 李四 2002-8-16XML基礎(chǔ)及相關(guān)技術(shù)69定義元素屬性 NMTOKEN和NMTOKENSn類型NMTOKEN和NMTOKENS是諸多屬性類型中面向處理程序的又一個(gè)類型。這兩個(gè)類型用于指示一個(gè)有效的名字。當(dāng)需要把
52、一個(gè)元素和其它的元件,例如一個(gè)JAVA類或一個(gè)安全算法,相聯(lián)系時(shí),可以讓它們助你一臂之力。n關(guān)于元素的定義: 授權(quán)用戶 NMTOKENS #IMPLIEDnXML文件: blah blah blah2002-8-16XML基礎(chǔ)及相關(guān)技術(shù)70定義元素屬性 NOTATION類型n現(xiàn)實(shí)世界中存在著很多無法或不易用XML格式組織的數(shù)據(jù),例如圖象、聲音、影象等等。對(duì)于這些數(shù)據(jù),XML應(yīng)用程序常常并不提供直接的應(yīng)用支持。通過為它們?cè)O(shè)定NOTATION類型的屬性,可以向應(yīng)用程序指定一個(gè)外部的處理程序。例如,當(dāng)你想要為一個(gè)給定的文件類型指定一個(gè)演示設(shè)備時(shí),可以用NOTATION類型的屬性作為觸發(fā)。n要使用NO
53、TATION類型作為屬性的類型,首先要在DTD中為可選用的記號(hào)作出定義。定義的方式有兩種,一種是使用MIME類型,形式是: n再有一種是使用一個(gè)URL路徑,指定一個(gè)處理程序的路徑。 !DOCTYPE 文件 2002-8-16XML基礎(chǔ)及相關(guān)技術(shù)71定義元素屬性 實(shí)體屬性類型n內(nèi)部實(shí)體定義: !ENTITY n外部實(shí)體定義: !ENTITY n引用方式: & &實(shí)體名;實(shí)體名;n使用關(guān)鍵字ENTITYENTITY,則聲明一個(gè)屬性是實(shí)體類型,它的取值為已定義的實(shí)體。!DOCTYPE 文件 2002-8-16XML基礎(chǔ)及相關(guān)技術(shù)72定義元素屬性 參數(shù)實(shí)體n參數(shù)實(shí)體專門用在DTD中。n
54、定義方式nnn引用方式為: %實(shí)體名;n2002-8-16XML基礎(chǔ)及相關(guān)技術(shù)73Dublin Core Metadata DTD!- DTD 2001-11-28 for Expressing Simple Dublin Core in RDF/XML /documents/2001/11/28/dcmes-xml/ Public ID: -/DUBLIN CORE/DCMES DTD 2001 11 28/EN Authors: Dave Beckett Eric Miller Dan Brickley Based on Dublin Core Me
55、tadata Element Set, Version 1.1: Reference Description /documents/1999/07/02/dces/ This DTD is for information only and NON-NORMATIVE.-2002-8-16XML基礎(chǔ)及相關(guān)技術(shù)74Dublin Core Metadata DTD2002-8-16XML基礎(chǔ)及相關(guān)技術(shù)75Dublin Core Metadata DTD2002-8-16XML基礎(chǔ)及相關(guān)技術(shù)76Dublin Core Metadata DTD2002-8-16X
56、ML基礎(chǔ)及相關(guān)技術(shù)77Dublin Core Metadata DTD2002-8-16XML基礎(chǔ)及相關(guān)技術(shù)78海納百川,有容乃大 DTD與SchemanDTD的定義nSchema的定義的定義nXML命名空間2002-8-16XML基礎(chǔ)及相關(guān)技術(shù)79Schema的定義nSchema的誕生n定義元素及其后代nSchema的簡(jiǎn)單實(shí)例nSchema文件的結(jié)構(gòu)n用Schema定義元素及其內(nèi)容n用Schema定義元素屬性nSchema的特色擴(kuò)展數(shù)據(jù)類型nSchema中的注釋nSchema的應(yīng)用2002-8-16XML基礎(chǔ)及相關(guān)技術(shù)80Schema的誕生nSchema也是XML的一種應(yīng)用,它是將DTD重新
57、使用XML語言規(guī)范來定義。n這個(gè)利用DTD把DTD改寫成的Schema,它可具有許多“青出于藍(lán)而勝于藍(lán)”的優(yōu)勢(shì)。 n一致性nDTD的書寫結(jié)構(gòu)和XML文件的結(jié)構(gòu)仿佛有著天壤之別,后者清晰直觀,前者復(fù)雜晦澀。nSchema建立在XML之上,它的樣子和一般的XML文件完全相同,使得XML達(dá)到了從內(nèi)到外的完美統(tǒng)一。因?yàn)镾chema本身也是一種XML,可以被現(xiàn)有的XML編輯制作工具所編輯、被XML語法分析器所解析、被XML應(yīng)用系統(tǒng)所利用,既有投資得到了最大程度的保護(hù)。 2002-8-16XML基礎(chǔ)及相關(guān)技術(shù)81Schema的誕生(cont.)n擴(kuò)展性n沒有數(shù)據(jù)類型,無形之中大大增加了程序員的開發(fā)難度和工
58、作量。n雖然DTD中也定義了一些數(shù)據(jù)類型,但那都是針對(duì)屬性類型而定義的,而且類型非常有限。nSchema對(duì)DTD進(jìn)行了擴(kuò)充,引入了數(shù)據(jù)類型,很好地解決了這一問題。 n易用性nXML Schema取代DTD的另一個(gè)原因要?dú)w結(jié)于DOM和SAX。作為一種XML API,DOM和SAX只是對(duì)XML實(shí)例文檔有效,對(duì)于DTD則無能為力。n規(guī)范性n同DTD一樣,Schema也提供了一套完整的機(jī)制以約束XML文檔中置標(biāo)的使用,但相比之下,后者基于XML,更具有規(guī)范性。n互換性n可根據(jù)需要設(shè)計(jì)適合自己應(yīng)用的Schema。通過映射機(jī)制,還可以將不同的Schema進(jìn)行轉(zhuǎn)換,以實(shí)現(xiàn)更高層次的數(shù)據(jù)交換。2002-8-1
59、6XML基礎(chǔ)及相關(guān)技術(shù)82定義元素及其后代 Schema的簡(jiǎn)單實(shí)例 2002-8-16XML基礎(chǔ)及相關(guān)技術(shù)83定義元素及其后代 Schema文件的結(jié)構(gòu)n一個(gè)Schema的結(jié)構(gòu)如下: .nSchema具有兩個(gè)屬性:name指定該Schema的名稱,而xmlns則指定該Schema包含的命名空間。注意,一個(gè)XML Schema文檔中可以包含多個(gè)命名空間。n2002-8-16XML基礎(chǔ)及相關(guān)技術(shù)84定義元素及其后代 用Schema定義元素及其內(nèi)容nElementType元素元素nnmodelmodel指定該元素是否可以包含未在本Schema中定義的元素和屬性,它主要用于其它Schema的引入,也就是
60、其它“命名空間”的引入。缺省狀態(tài)下,XML Schema的model取值open“。 張三 001 A公司 (010)62345678 (010)62345678 五街1234號(hào) 北京市 北京 100001 2002-8-16XML基礎(chǔ)及相關(guān)技術(shù)85定義元素及其后代 用Schema定義元素及其內(nèi)容nelement元素nngroup元素n2002-8-16XML基礎(chǔ)及相關(guān)技術(shù)86定義元素及其后代 DTD與Schema元素定義方式對(duì)照表表現(xiàn)內(nèi)容DTDSchema合法實(shí)例空元素字符串a(chǎn)bcdefg父元素一個(gè)子元素 有順序的子元素 OR或 任意順序(或不出現(xiàn))的子元素 2002-8-16XML基礎(chǔ)及相關(guān)技術(shù)87定義元素及其后代 DTD與Schema元素定義方式對(duì)照表表現(xiàn)內(nèi)容DTDSchema合法實(shí)例父元素可選子元素 “+”型重復(fù)元素 “*”型重復(fù)元素 成組元素 混合元素 abcdefg abcdefg a
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 投資策略出納崗位招聘合同
- 毛坯房買賣二手房合同樣本
- 砌筑工程三方施工合同
- 航空服務(wù)兼職地勤協(xié)議
- 創(chuàng)意園區(qū)施工合同
- 網(wǎng)絡(luò)布線施工合同
- 倉儲(chǔ)設(shè)施管樁施工合同
- 飛機(jī)場(chǎng)航站樓鋼架雨棚安裝協(xié)議
- 美食城租賃聯(lián)營合作協(xié)議
- 場(chǎng)地檢測(cè)合同范例
- 中國傳統(tǒng)文化剪紙PPT模板
- 高中家長(zhǎng)給孩子寄語
- 藥物警戒體系主文件(根據(jù)指南撰寫)
- 2022重癥醫(yī)學(xué)科優(yōu)質(zhì)護(hù)理工作計(jì)劃
- 系列壓路機(jī)xmr30s40s操作保養(yǎng)手冊(cè)
- 廣州教科版六年級(jí)英語上冊(cè)M1-6復(fù)習(xí)練習(xí)題(含答案)
- GB/T 24159-2022焊接絕熱氣瓶
- GB/T 22412-2016普通裝飾用鋁塑復(fù)合板
- GB/T 20388-2006紡織品鄰苯二甲酸酯的測(cè)定
- GB/T 18370-2014玻璃纖維無捻粗紗布
- GB 7681-2008鍘草機(jī)安全技術(shù)要求
評(píng)論
0/150
提交評(píng)論