![xml實(shí)用教程:第3章 XML基礎(chǔ)_第1頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2021-12/9/071c7e7d-d4b7-459c-a02f-2565b85e8adc/071c7e7d-d4b7-459c-a02f-2565b85e8adc1.gif)
![xml實(shí)用教程:第3章 XML基礎(chǔ)_第2頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2021-12/9/071c7e7d-d4b7-459c-a02f-2565b85e8adc/071c7e7d-d4b7-459c-a02f-2565b85e8adc2.gif)
![xml實(shí)用教程:第3章 XML基礎(chǔ)_第3頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2021-12/9/071c7e7d-d4b7-459c-a02f-2565b85e8adc/071c7e7d-d4b7-459c-a02f-2565b85e8adc3.gif)
![xml實(shí)用教程:第3章 XML基礎(chǔ)_第4頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2021-12/9/071c7e7d-d4b7-459c-a02f-2565b85e8adc/071c7e7d-d4b7-459c-a02f-2565b85e8adc4.gif)
![xml實(shí)用教程:第3章 XML基礎(chǔ)_第5頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2021-12/9/071c7e7d-d4b7-459c-a02f-2565b85e8adc/071c7e7d-d4b7-459c-a02f-2565b85e8adc5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第3章 XML基礎(chǔ) 返回主頁(yè) 上一章 下一章教學(xué)提示:XML擴(kuò)展了HTML的標(biāo)識(shí)和功能,使編程人員可以根據(jù)需要定義標(biāo)記。XML還具有信息描述、交換等多項(xiàng)功能。掌握XML的語(yǔ)法知識(shí)是進(jìn)一步學(xué)習(xí)和運(yùn)用XML技術(shù)的前提。本章講述編制XML文檔的常用語(yǔ)法和基本規(guī)則,主要包括XML基本語(yǔ)法、XML文檔的基本組成等,這些內(nèi)容是學(xué)習(xí)整個(gè)XML的基礎(chǔ)。教學(xué)目標(biāo):理解結(jié)構(gòu)良好的XML文檔的概念,掌握XML的基本語(yǔ)法,熟悉屬性、特殊字符、注釋、CDATA、名稱空間的使用方法,了解XML的相關(guān)技術(shù),能夠使用XMLSPY建立簡(jiǎn)單的XML文檔。3.1 XML標(biāo)記語(yǔ)法3.2 XML文檔語(yǔ)法和數(shù)據(jù)結(jié)構(gòu)3
2、.3 XML的相關(guān)技術(shù)3.4 XML名稱空間3.5開發(fā)工具XMLSPY與XML實(shí)例的建立小結(jié)習(xí)題寫字版 繪圖板 進(jìn)入Editplus 進(jìn)入XMLWriter3.1 XML標(biāo)記語(yǔ)法 本章開頭 下一節(jié)3.1.1標(biāo)記的命名規(guī)則作為元標(biāo)記語(yǔ)言,XML可以在文檔中創(chuàng)建、使用新的標(biāo)記和文法結(jié)構(gòu)。正是這種優(yōu)點(diǎn)使得用戶能夠根據(jù)自己的特殊需要制定出適用于自身的一套標(biāo)記和文法結(jié)構(gòu),以便于結(jié)構(gòu)化地描述自己領(lǐng)域的信息,從而提供一種處理數(shù)據(jù)的最佳方式。XML的可擴(kuò)展性為我們進(jìn)行程序開發(fā)提供了廣闊自由的空間,但并非所有名字都可以做標(biāo)記名。作為標(biāo)記名字的字符串必須滿足以下要求:· 名稱的開頭必
3、須是字母或“_”; · 標(biāo)記名稱中不能有空格; · 名稱的字符串只能包含“英文字母”、“數(shù)字”、“_”、“-”、“.”等字符。 例如下面的標(biāo)記就是合法標(biāo)記:<Name><name><_name><lisongtao_name><><.name><li%name><li*name><li/name>這是標(biāo)記的命名規(guī)則同時(shí)也是后面要講到的屬性的命名規(guī)則,以及XML文檔中其他實(shí)體的命名規(guī)則。3.1.2標(biāo)記的使用規(guī)則1.必須具有根標(biāo)記且根標(biāo)記必須惟一結(jié)構(gòu)良好的X
4、ML應(yīng)用程序的根標(biāo)記必須要惟一?!纠?.1】根標(biāo)記不惟一的XML文檔,code3_1.xml。<?xml version="1.0" encoding="gb2312" ?><bookinfo> <title>計(jì)算機(jī)導(dǎo)論</title> <author>丁躍潮等</author>
5、160; <publish> <publisher>高等教育出版社</publisher> <ISBN>7-04-014768-8</ISBN>
6、 <pubdate>2004.6</pubdate> </publish> <price>19.7</price></bookinfo><bookinfo> <title>計(jì)算機(jī)導(dǎo)論</title>
7、60; <author>丁躍潮等</author> <publish> <publisher>高等教育出版社</publisher>
8、; <ISBN>7-04-014768-8</ISBN> <pubdate>2004.6</pubdate> </publish> <price>19.7</price></bookinfo>
9、顯示的結(jié)果如圖3.1。圖3.1 根標(biāo)記不惟一的XML文檔的顯示結(jié)果該程序出錯(cuò)的地方是根標(biāo)記不惟一。只要在兩個(gè)標(biāo)記的外面統(tǒng)一套一個(gè)標(biāo)記<book></book>,程序就成為運(yùn)行正常的XML文檔了。2.開始標(biāo)記和結(jié)束標(biāo)記需配對(duì)使用在HTML中,只有開始標(biāo)記而沒有結(jié)束標(biāo)記的程序往往還能得到正確的顯示結(jié)果,但在XML文檔中這種情況是不允許存在的?!纠?.2】開始標(biāo)記和結(jié)束標(biāo)記不配對(duì)的XML文檔,code3_2.xml。<?xml version="1.0" encoding="gb2312" ?><bookinfo>
10、; <title>計(jì)算機(jī)導(dǎo)論</title> <author>丁躍潮等</author> <publish> <publisher>高等教育出版
11、社</publisher> <ISBN>7-04-014768-8</ISBN> <pubdate>2004.6</pubdate> </publisher>
12、; <price>19.7</price></bookinfo>該程序的問題就在于<publish>標(biāo)記和</publisher>標(biāo)記不是一對(duì)開始和結(jié)束標(biāo)記,這里只要將<publish>改為<publisher>或?qū)?lt;/publisher>改為</publish>問題就解決了。例3.4顯示結(jié)果如圖3.2。圖3.2 開始標(biāo)記和結(jié)束標(biāo)記不配對(duì)的XML文檔的顯示結(jié)果3.標(biāo)記不能交錯(cuò)使用所謂標(biāo)記的交錯(cuò)使用就是指如下情形的標(biāo)記
13、使用:<publisher><ISBN>7-04-014768-8</publisher></ISBN>上面例子中,標(biāo)記</publisher>和標(biāo)記</ISBN>就是交錯(cuò)使用。在XML中這種標(biāo)記的交錯(cuò)使用是非法的。應(yīng)改成:<publisher><ISBN>7-04-014768-8</ISBN></publisher>4.空標(biāo)記的使用所謂空標(biāo)記指的是標(biāo)記只有開始沒有結(jié)束,又叫孤立標(biāo)記。這種標(biāo)記有的表示一種格式信息,例如<hr>在HTML中代表了一條直線,有的則保
14、存一些數(shù)據(jù)信息。空標(biāo)記可寫成“<標(biāo)記名/>”的形式。具體使用如下例:【例3.3】空標(biāo)記的使用,code3_3.xml。<?xml version="1.0" encoding="gb2312" ?><!- 這個(gè)文檔包含網(wǎng)上書店中關(guān)于書的描述,文件名code3_3.xml -><!DOCTYPE bookinfo SYSTEM "code3_1.dtd"><bookinfo> <title
15、>計(jì)算機(jī)導(dǎo)論</title> <author>丁躍潮等</author> <publish> <publisher>高等教育出版社</publisher>
16、0; <ISBN>7-04-014768-8</ISBN> <pubdate>2004.6</pubdate> </publish> <bk/>
17、 <price>19.7</price></bookinfo>5.標(biāo)記對(duì)大小寫敏感HTML中并不存在大小寫敏感問題,但在XML中相配對(duì)的標(biāo)記大小寫也需相同。【例3.4】標(biāo)記大小寫不匹配的XML文檔,code3_4.xml。<?xml version="1.0" encoding="gb2312" ?><bookinfo> <title&
18、gt;計(jì)算機(jī)導(dǎo)論</title> <author>丁躍潮等</author> <publish> <publisher>高等教育出版社</publisher>
19、; <ISBN>7-04-014768-8</ISBN> <pubdate>2004.6</pubdate> </publish> <price>19.7</pr
20、ice></BOOKINFO>上面程序中</bookinfo>標(biāo)記和</BOOKINFO>標(biāo)記被認(rèn)為是兩個(gè)不同的標(biāo)記,所以</bookinfo></BOOKINFO>被認(rèn)為是兩個(gè)不配對(duì)的標(biāo)記。程序?qū)@示錯(cuò)誤信息,見圖3.3.圖3.3 標(biāo)記大小寫不匹配的XML文檔的顯示結(jié)果3.2 XML文檔語(yǔ)法和數(shù)據(jù)結(jié)構(gòu) 上一節(jié) 下一節(jié) 本章開頭結(jié)構(gòu)良好(Well-Formed)的XML文檔,通常是指沒有語(yǔ)法錯(cuò)誤的XML程序。XML是一種語(yǔ)法要求十分嚴(yán)格的標(biāo)記語(yǔ)言,因此語(yǔ)法有嚴(yán)格的限制。這里所說的結(jié)構(gòu)良好的XML文檔就是指滿足所有語(yǔ)法
21、限制的XML文檔。有關(guān)XML的基本語(yǔ)法一共有4條:· 文件的第一條語(yǔ)句必須是有關(guān)版本的聲明; · 標(biāo)記的使用必須遵循3.1小節(jié)各規(guī)則 · 屬性的值必須用雙引號(hào)括起來(lái); · 特殊字符必須使用XML中特定的編碼來(lái)表示。 通常情況下滿足以上4條的XML文檔就能被IE檢查通過,就是結(jié)構(gòu)良好的XML文檔。3.2.1處理指令處理指令是包含XML文檔中的一些命令性語(yǔ)句,目的是告訴XML處理一些信息或執(zhí)行一定的動(dòng)作。例如想要通知XML解析器某篇XML文檔所使用的編碼字符集,或是要通知XML解析器某篇XML文檔所使用的編碼字符集,或是要通知XML解析器有關(guān)XML的版本信息
22、等,都必須通過處理指令來(lái)實(shí)現(xiàn)。處理指令的格式為:<?>例如有關(guān)版本信息的聲明指令:<?xml version=”1.0”?>其中兩個(gè)“<?”和“?>”是開始和結(jié)束的界定符號(hào),“xml”是處理指令的命令名字。“version”命令中的屬性,通常描述處理指令一個(gè)特定的細(xì)節(jié),“1.0”是屬性的值,代表了對(duì)屬性進(jìn)行的某一方面的設(shè)定??偠灾厦嬷噶罹褪歉嬖VXML解析器,該文檔遵守XML1.0規(guī)范,就按照XML1.0的要求來(lái)檢查!一個(gè)結(jié)構(gòu)良好的XML文檔必須要包含有關(guān)版本的聲明,而且有關(guān)版本聲明的信息必須放在整個(gè)XML文檔的第一行?!纠?.5】沒有版本聲明的XML文檔
23、,code3_5.xml。<?xml encoding="gb2312" ?><bookinfo> <title>計(jì)算機(jī)導(dǎo)論</title> <author>丁躍潮等</author> <publish>
24、160; <publisher>高等教育出版社</publisher> <ISBN>7-04-014768-8</ISBN> <pubdate>2004.6</pubdate>
25、160; </publish> <price>19.7</price></bookinfo>顯示的結(jié)果如圖3.4。圖3.4 沒有版本聲明的XML文檔的顯示結(jié)果該程序的錯(cuò)誤在于沒有關(guān)于版本信息的聲明,所以程序的顯示結(jié)果如圖3.4所示。只要在版本聲明的程序語(yǔ)句中添加版本信息“version=”1.0”,該程序的語(yǔ)法錯(cuò)誤就能消除。在XML瀏覽器中有關(guān)版本聲明的信息在程序中只有使用英文代碼的情況下可以
26、省略,但這里不建議這樣做,希望讀者盡量寫出結(jié)構(gòu)完整的XML程序。【例3.6】有關(guān)版本聲明的信息沒有放在第一行的XML文檔,code3_6.xml。<!- 這個(gè)文檔包含網(wǎng)上書店中關(guān)于書的描述,文件名code3_6.xml -><?xml version="1.0" encoding="gb2312" ?><bookinfo> <title>計(jì)算機(jī)導(dǎo)論</title> &
27、#160; <author>丁躍潮等</author> <publish> <publisher>高等教育出版社</publisher> <ISBN>7-0
28、4-014768-8</ISBN> <pubdate>2004.6</pubdate> </publish> <price>19.7</price></bookinfo>顯示的結(jié)果如圖3.5。該程序的錯(cuò)誤在于有關(guān)版本
29、聲明的信息沒有放在第一行,顯示出錯(cuò)信息如圖3.2所示。只要將其放在第一行,程序就是一個(gè)運(yùn)行良好的程序。所以要這樣做的要求是因?yàn)镮E開始顯示一個(gè)后綴為XML的文件時(shí),就要立即檢測(cè)它的版本信息,隨后才能進(jìn)行進(jìn)一步的程序處理。還有其他方面的處理指令,我們后面會(huì)進(jìn)一步說明。3.2.2 XML的屬性XML允許為元素設(shè)置屬性,用來(lái)為元素附加一些額外信息,這些信息與元素本身的信息內(nèi)容有所不同。一個(gè)XML可以包含多個(gè)屬性,從而存儲(chǔ)一個(gè)或多個(gè)關(guān)于該元素的數(shù)據(jù)。圖3.5 版本聲明的信息沒有放在第一行的XML文檔的顯示結(jié)果對(duì)于非空元素,屬性的基本使用格式為:<開始標(biāo)記 屬性名稱1="屬性值"
30、; 屬性名稱2="屬性值"></結(jié)束標(biāo)記>或<開始標(biāo)記 屬性名稱1=屬性值 屬性名稱2=屬性值></結(jié)束標(biāo)記>對(duì)于空元素,屬性的基本使用格式為:<空標(biāo)記 屬性名稱1="屬性值" 屬性名稱2="屬性值"/>或<空標(biāo)記 屬性名稱1=屬性值 屬性名稱2=屬性值/>【例3.7】屬性的使用,代碼code3_7.xml。<?xml version="1.0" encoding="gb2312" ?><bookinfo id=
31、"001" bookcategory="文藝" amount="100" remain="80" discount="8.7"> <title>計(jì)算機(jī)導(dǎo)論</title> <author>丁躍潮等</author>
32、160; <publish> <publisher>高等教育出版社</publisher> <ISBN>7-04-014768-8</ISBN>
33、 <pubdate>2004.6</pubdate> </publish> <price>19.7</price></bookinfo>在XML中設(shè)置屬性時(shí)應(yīng)注意:· 要符合XML的語(yǔ)法格式,屬性值要用引號(hào)(單引號(hào)或雙引號(hào))括起來(lái)。如下屬性設(shè)置是不合法的:<book id=001 bookcategory=文藝 amount=10
34、0 remain=80 discount=8.7>在上述屬性設(shè)置中,屬性id,bookcategory,amount,remain,discount的屬性值均未用引號(hào)括起來(lái),因此是不合法的。圖3.6 屬性使用效果圖· 當(dāng)屬性值本身含有單引號(hào)時(shí),則用雙引號(hào)來(lái)做為屬性的定界符,當(dāng)屬性值本身含有雙引號(hào),則用單引號(hào)來(lái)作為屬性的定界符,當(dāng)屬性中既包含單引號(hào),又包含雙引號(hào)的時(shí)候,屬性值中的引號(hào)必須用實(shí)體引用方式來(lái)表示。· 一個(gè)元素不可以擁有相同名稱的兩個(gè)屬性,不同的元素可以擁有兩個(gè)相同名稱的屬性。如下屬性設(shè)置擁有兩個(gè)名稱為anount的屬性,所以是不合法的。<book id
35、="001" bookcategory="文藝" amount="100" amount="80" discount="8.7">· 不但自定義標(biāo)記中可以有屬性,XML文檔的處理指令中也可以有屬性,例如XML聲明版本信息的“version”屬性。 <?xml version="1.0" encoding="gb2312" ?>3.2.3特殊字符的使用在XML文檔中有些字符是特殊字符,這些字符的特殊之處就在于這些字符在XML標(biāo)記語(yǔ)
36、言中已經(jīng)被賦予了特殊的意義。例如“<”在XML標(biāo)記語(yǔ)言中就表示所有標(biāo)記的開始記號(hào),因而是XML語(yǔ)言的保留字符。如果現(xiàn)在要求將字符“<”顯示在頁(yè)面上該如何處理呢?處理方法是給這些特殊字符定義一個(gè)特殊的編碼。表3.1列出了所有這些特殊字符所對(duì)應(yīng)的編碼 表3.1 XML中的特殊字符表特殊字符代替符號(hào)特殊的原因&&每一個(gè)代表符號(hào)的開頭字符> >標(biāo)記的結(jié)束字符< <標(biāo)記的開始字符"設(shè)定屬性的值'設(shè)定屬性的值 例如要在文檔中顯示字符“<”和“>
37、”時(shí),必須使用<和>代替。下面的例子在“文藝”二字的左右邊分別加上“<”和“>”符號(hào)?!纠?.8】特殊字符的使用,code3_8.xml。<?xml version="1.0" encoding="gb2312" ?><book bookcategory="<文藝> "> <bookinfo> <title&
38、gt;計(jì)算機(jī)導(dǎo)論</title> <author>丁躍潮等</author> <publish> <publisher>高等教育出版社</publisher>
39、; <ISBN>7-04-014768-8</ISBN> <pubdate>2004.6</pubdate> </publish> <price>19.7</pr
40、ice> </bookinfo > </book>顯示結(jié)果如圖3.7。這里需注意特殊字符都是以“&”開始,以“;”結(jié)束。 圖3.7 特殊字符的使用效果3.2.4 XML文檔中的注釋任何成熟的計(jì)算機(jī)程序語(yǔ)言都必須有注釋語(yǔ)句,對(duì)文檔中其它形式語(yǔ)句進(jìn)行提示或說明。這是進(jìn)行大型程序設(shè)計(jì)至關(guān)重要的一項(xiàng)要求,XML文檔也不例外。XML文檔中的注釋和HTML文檔中的注釋是一樣的,都是以下列開始符號(hào)和結(jié)束符號(hào)界定的一行或多行代碼。<!->程序code3_3.xml的代碼是一個(gè)帶有注釋的完整的XML文檔,注
41、釋以灰色顯示,表示是一些幫助信息,而不是程序的正式語(yǔ)句。語(yǔ)法解析器將完全忽略注釋中的內(nèi)容。此外,注釋不能出現(xiàn)在文檔的第一行,文檔的第一行必須是有關(guān)版本信息的處理指令。由于注釋對(duì)文檔起到了說明的作用,為了方便以后的閱讀,希望讀者朋友能養(yǎng)成一個(gè)及時(shí)在程序中添加注釋的習(xí)慣。3.4.5程序中的文字CDATA標(biāo)記HTML標(biāo)記語(yǔ)言中有一個(gè)<pre>標(biāo)記,叫做預(yù)定義格式標(biāo)記,該標(biāo)記當(dāng)中的內(nèi)容將按原來(lái)格式被顯示出來(lái)。和HTML中的<pre></pre>標(biāo)記有點(diǎn)相似,XML標(biāo)記語(yǔ)言中也有一個(gè)對(duì)應(yīng)的標(biāo)記,即CDATA標(biāo)記。但這里注意,它們只是相似,本質(zhì)上還有很大的不同。CDAT
42、A標(biāo)記的作用是通知XML語(yǔ)法解析器,該標(biāo)記中代碼包括文字和標(biāo)記都要當(dāng)作純文本來(lái)解析,并原封不動(dòng)的將這段代碼傳給下一個(gè)XML應(yīng)用程序。界定該段代碼的開始和結(jié)束標(biāo)記為:<!CDATA >【例3.9】CDATA標(biāo)記的使用,code3_9.xml。<?xml version="1.0" encoding="gb2312"?><!- 這個(gè)文檔包含網(wǎng)上書店中關(guān)于書的描述,文件名code3_9.xml -><bookinfo><!CDATA<bookinfo>
43、0; <title>計(jì)算機(jī)導(dǎo)論</title> <author>丁躍潮等</author> <publish> <publisher>高等教育出版社</publisher&g
44、t; <ISBN>7-04-014768-8</ISBN> <pubdate>2004.6</pubdate> </publish>
45、 <bk/> <price>19.7</price> </bookinfo>><title>計(jì)算機(jī)導(dǎo)論</title> <author>丁躍潮等</author> <publish>
46、160; <publisher>高等教育出版社</publisher> <ISBN>7-04-014768-8</ISBN> <pubdate>2004.6</pubdate> </publish> <bk/> <pric
47、e>19.7</price></bookinfo>程序code3_9.xml的顯示結(jié)果如圖3.8所示。圖3.8 CDATA的使用3.3 XML的相關(guān)技術(shù) 上一節(jié) 下一節(jié) 本章開頭單純的XML是用來(lái)描述數(shù)據(jù)的,如果沒有搭配適當(dāng)?shù)臉邮奖?,在Web瀏覽器中瀏覽XML文件時(shí),只能看到XML文件的樹形結(jié)構(gòu),這本身意義不大。此外,要驗(yàn)證XML文件是否正確合法,還需要有DTD或XML Schema。在XML文件中要連接到其他的資源,就需要XLink、XPath和XPointer等。3.3.1 CSS級(jí)聯(lián)樣式單(Cascading Style Sheet,CSS),其目的是提供一
48、種技術(shù)手段將Web頁(yè)面在瀏覽器中的顯示更加引人入勝,同時(shí)又不必像常見到的HTML文檔那樣頻繁地添加控制顯示的標(biāo)準(zhǔn)標(biāo)注,從而提高XML文檔的編寫效率。編寫XML文檔的過程中,通過使用級(jí)聯(lián)樣式單,能夠?qū)⑽臋n的格式化信息與文檔的正文分離開來(lái)。級(jí)聯(lián)樣式單的功能在不斷被擴(kuò)充,但到目前為止,CSS樣式單有兩個(gè)官方標(biāo)準(zhǔn):CSS1和CSS2。CSS1能夠?qū)崿F(xiàn)的功能在CSS2中能完成的更好。目前,CSS1的功能在大多數(shù)高版本的瀏覽器中都得到了廣泛的支持。3.3.2 DTD文檔類型定義(Document Type Definitions,DTD),就是定義一種標(biāo)記語(yǔ)言。主要包括一門標(biāo)記語(yǔ)言由幾部分構(gòu)成,該語(yǔ)言都是
49、由哪些標(biāo)記構(gòu)成,這些標(biāo)記的嵌套關(guān)系如何,該語(yǔ)言中是否存在實(shí)體,(所謂實(shí)體,就是一些特殊字符或字符串的別名,例如HTML的“ ”),標(biāo)記中是否可用屬性,屬性的取值該如何指定?簡(jiǎn)言之就是合法的XML文檔的“法”之所在。這在XML文檔中不是必須的部分,但這里建議盡量寫出合法的XML文檔,一則結(jié)構(gòu)嚴(yán)謹(jǐn),二則便于以后使用程序處理該文檔。3.3.3 XML Schema雖然DTD在校驗(yàn)XML文檔的有效性方面非常有用,但它仍然存在許多缺陷,例如,采用了非XML的語(yǔ)法規(guī)則、不支持多種多樣的數(shù)據(jù)類型、擴(kuò)展性較差等,這些缺陷使DTD的應(yīng)用受到了很大的限制。為了解決上述問題,以微軟為首的眾多公司提
50、出了XML Schema(大綱)。XML Schema建立在XML之上,它的樣子和一般的XML文檔完全相同,使得XML文檔達(dá)到從內(nèi)到外的完美統(tǒng)一。3.3.4 XSL 可擴(kuò)展樣式語(yǔ)言(eXtensible Style Language,XSL),是為了格式化XML頁(yè)面而發(fā)展起來(lái)的一種標(biāo)記語(yǔ)言,較CSS技術(shù)有許多優(yōu)點(diǎn)。XSL包括變換語(yǔ)言(Transformation Language)和格式語(yǔ)言(Formatting Language)。變換語(yǔ)言的主要功能是把數(shù)據(jù)從一種XML表示轉(zhuǎn)換成另一種符合某一規(guī)范的表示,以滿足某一特定需要,這種功能使它成為了基于XML的電子商務(wù)、電子數(shù)據(jù)交換和無(wú)數(shù)據(jù)交換的有
51、利工具;而格式語(yǔ)言的功能是描述如何顯示文檔中的內(nèi)容。2.4.5 XML DOMDOM即Document Object Model, 與HTML技術(shù)中的DOM概念相同,它把XML文檔的內(nèi)容實(shí)現(xiàn)為一個(gè)對(duì)象模型,簡(jiǎn)單的說就是應(yīng)用程序如何訪問XML文檔,W3C的DOM Level 1 定義了如何實(shí)現(xiàn)屬性、方法、事件等。DOM定義了一組標(biāo)準(zhǔn)指令集,通過程序存取HTML或XML的內(nèi)容,然后通過程序中的對(duì)象集合將其顯示出來(lái)。3.3.6 XML的鏈接語(yǔ)言超鏈接是描述HTML文檔中不同部分之間關(guān)系的一種技術(shù)。在HTML標(biāo)記語(yǔ)言中只是簡(jiǎn)單的一條語(yǔ)句,但在XML語(yǔ)言中,這種語(yǔ)句就被擴(kuò)充得十分豐富,嚴(yán)格來(lái)講,超鏈接已
52、經(jīng)不是XML標(biāo)記語(yǔ)言的一部分,而是一種獨(dú)立的鏈接語(yǔ)言。XML的鏈接語(yǔ)言目前主要有三部分構(gòu)成,分別為Xlink 、Xpath和Xpointer。XLink支持一般的鏈接,就像在HTML鏈接一樣,也支持更為復(fù)雜的鏈接。XLink不僅可以在XML文件之間建立鏈接,而且可以建立其他類型數(shù)據(jù)之間的鏈接。不僅如此,還可描述與非XML文件之間的鏈接關(guān)系。XPath主要是描述一個(gè)路徑位置,而位置可以分成相對(duì)位置路徑和絕對(duì)位置路徑。一個(gè)相對(duì)位置路徑事實(shí)上包含一連串的尋址步驟,每個(gè)尋址步驟是以斜線(/)進(jìn)行分隔的。整個(gè)相對(duì)位置路徑就是這些尋址步驟從左到右結(jié)合在一起的。至于絕對(duì)路徑本身就包含斜線(/),此處所使用的
53、斜線代表的是根節(jié)點(diǎn),它包括目前的節(jié)點(diǎn)。XML是結(jié)構(gòu)化的文件,這使得借助文件結(jié)構(gòu)進(jìn)行內(nèi)部定位成為可能,此時(shí)無(wú)須對(duì)文件本身進(jìn)行修改,這就是XPointer。XPointer用于在資源內(nèi)定位,它支持在XML文件中定位元素、屬性、字符串等內(nèi)部結(jié)構(gòu)。3.4 XML名稱空間 上一節(jié) 下一節(jié) 本章開頭 XML是一種元標(biāo)記語(yǔ)言,允許用戶定義自己的標(biāo)記,因此,很可能產(chǎn)生名字重復(fù)的情況。為了解決這個(gè)問題,W3C在1999年1月頒布了名稱空間(Name Space)標(biāo)準(zhǔn)。該標(biāo)準(zhǔn)對(duì)名稱空間的定義是:XML名稱空間提供了一套簡(jiǎn)單的方法,將XML文檔和URI引用標(biāo)記的名稱相結(jié)合,來(lái)限定其中的元素和屬性名。由此
54、可知它通過使用URI,解決了XML文檔中標(biāo)記重名的問題,從而確保任何一篇XML文檔中使用的名字都是全球范圍內(nèi)獨(dú)一無(wú)二的。原則上一個(gè)不使用名稱空間的XML文檔是一個(gè)實(shí)用意義不大的文檔,因?yàn)樵谌蚍秶鷥?nèi)很可能有和它同名的標(biāo)記存在。3.4.1 名稱空間的聲明在使用名稱空間之前,必須首先進(jìn)行聲明,名稱空間的聲明類似于前面元素的聲明,將一個(gè)惟一的標(biāo)識(shí)符號(hào)指定到一個(gè)URI或其他合法字符串上,使用前面定義的標(biāo)識(shí)符號(hào)作為標(biāo)記的前綴,表示一類標(biāo)記的出處。【例3.10】名稱空間的聲明,code3_10.xml。<?xml version="1.0" encoding="gb23
55、12" ?><book:bookinfo xmlns:book=" <book:title>計(jì)算機(jī)導(dǎo)論</book:title> <book:author>丁躍潮等</book:author> <book:price>19.7</book:price
56、></book:bookinfo>其中,xmlns是一個(gè)專門用來(lái)指定名稱空間的關(guān)鍵字,book是為了XML文檔中適用方便而隨便起的一個(gè)名字,它被用來(lái)標(biāo)識(shí)字符串“這里需要指出的是,字符串“名稱空間聲明好后,就可以使用它了,使用方法如下:<book:title>計(jì)算機(jī)導(dǎo)論</book:title>注意在聲明名稱空間時(shí)可以將多個(gè)聲明結(jié)合在一起,例如下面語(yǔ)句:<book:bookinfo xmlns:book1="xmlns:book2="名稱空間具有繼承性,也就是說,如果不明確聲明子元素的名稱空間,子元素將繼承父元素的名稱空間聲明。
57、但要注意的是,在缺省聲明的名稱空間范圍內(nèi),所有的元素及其子元素不加前綴,而在顯示聲明的名稱空間范圍內(nèi),所有的元素及其子元素必須加前綴?!纠?.11】缺省聲明與顯示聲明名稱空間的XML文檔,code3_11.xml。<?xml version="1.0" encoding="gb2312"?><book xmlns=" xmlns:bo=" <bookinfo> <title>
58、;計(jì)算機(jī)導(dǎo)論</title> <author>丁躍潮等</author> <price>19.7</price> </bookinfo> <bo:publish> <bo:publish
59、er>高等教育出版社</bo:publisher> <bo:ISBN>7-04-014768-8</bo:ISBN> <bo:pubdate>2004.6</bo:pubdate> </bo:publish></book>3.4.2名稱空間的范疇名稱空間的范疇就是名稱空間起作用的范圍。而范圍就是聲明該名稱
60、空間的元素及該元素中所有的子元素,除非是在該元素的某一個(gè)子元素上又聲明了相同的名稱空間?!纠?.12】名稱空間的范圍,code3_12.xml。<book:bookinfo xmlns:book=" <title>計(jì)算機(jī)導(dǎo)論</title> <author>丁躍潮等</author> <book:publish xmlns:book=" &
61、#160; <book:publisher>高等教育出版社</book:publisher> <book:ISBN>7-04-014768-8</book:ISBN> <book:pubdate>2004.6</book:pubdate> </book:publish> &l
62、t;book:price>19.7</book:price></book:bookinfo>上面的程序當(dāng)中,用了同名的兩個(gè)名稱空間。第一個(gè)名稱空間的作用范圍是除了<publish>標(biāo)記塊的整個(gè)文檔內(nèi)容,屬于3.5 開發(fā)工具XMLSPY與XML實(shí)例的建立 上一節(jié) 下一節(jié) 本章開頭XML Spy 是Icon Information-Systems公司的產(chǎn)品,它的顯示界面在第1章中已作了介紹。這里我們介紹使用XML Spy編輯XML文檔的方法。XML Spy支持Unicode、多字符集,支持Well-formed和Validated兩種類型的XML文檔,并可
63、編輯XML文檔、DTD、schema,以及XSLT。它的最大特點(diǎn)是提供了四種視窗:XML結(jié)構(gòu)視窗、增強(qiáng)表格視窗、源代碼視窗和支持CSS和XSL的預(yù)覽視窗。結(jié)構(gòu)視窗以樹形結(jié)構(gòu)編輯XML文檔(包括XML、XSL文檔,但對(duì)DTD文檔的顯示相對(duì)較為簡(jiǎn)單);增強(qiáng)表格視窗以表格的方式顯示出文檔中的某一項(xiàng)元素的數(shù)據(jù)庫(kù)項(xiàng);源代碼視窗可以查看和修改文檔源碼,并且以不同的顏色標(biāo)注不同的元素;預(yù)覽視窗采用內(nèi)嵌IE5.0的方式在軟件內(nèi)對(duì)XML文檔進(jìn)行瀏覽,支持CSS和XSL。XML Spy可支持Document Type Definitions (DTD)、Document Content Descriptions
64、(DCD)、 XML-Data Reduced (XDR)、BizTalk、XML Schema Definition (XSD)的編輯與有效性檢查。 XML Spy也提供集成開發(fā)環(huán)境IDE,但仍不支持所見即所得。XML Spy目前的最高版本是2005版,可運(yùn)行在Windows95/98/Me/XP/2000/2003環(huán)境。本教程主要以XML Spy作為編輯和驗(yàn)證工具,并作為瀏覽工具。這里以程序code 3_3.xml為例使用XMP Spy建立一個(gè)簡(jiǎn)單的XML文檔?!纠?.13】XML文檔編輯實(shí)例,code3_13.xml。<?xml version="1.0" en
65、coding="gb2312"?><!- 這個(gè)文檔包含網(wǎng)上書店中關(guān)于書的描述,文件名code3_13.xml -><books><book id="018" category="計(jì)算機(jī)" amount="560" remain="200" iscount="8.2"> <bookinfo>
66、160; <title>計(jì)算機(jī)導(dǎo)論</title> <author>丁躍潮等</author> <publish>
67、60; <publisher>高等教育出版社</publisher> <ISBN>7-04-014768-8</ISBN>
68、; <pubdate>2004.6</pubdate> </publish> <price>19.7</price> </bookinfo></book>&
69、lt;book id="001" category="文藝" amount="100" remain="80" discount="8.7"> <bookinfo> <title>三國(guó)演義</title> &
70、#160; <author>羅貫中</author> <publish> <publisher>文藝出版社</publisher> &
71、#160; <ISBN>0-764-58007-8</ISBN> <pubdate>1998.10</pubdate> &
72、#160; </publish> <price>80.00 </price> </bookinfo></book></books>XML Spy的安裝比較簡(jiǎn)單,這里省略。安裝后按以下步驟操作。1.建立根結(jié)點(diǎn)選擇菜單File->New彈出Create new document 對(duì)話框
73、,選擇里面的xml(xml document)。彈出的New file對(duì)話框中要求選擇DTD或Schema單選鈕,這是指所建立的xml文檔采用何種驗(yàn)證機(jī)制,我們先都不選,即按“Cancel”按鈕。若使用的是XML SPY 2004,一個(gè)空的xml文檔就會(huì)被建立在Grid視圖區(qū),界面主要部分如圖3.10所示。編碼方式項(xiàng)encoding默認(rèn)值為UTF-8,我們將其改為GB2312。鼠標(biāo)置于XML灰綠色拐形區(qū)域,點(diǎn)鼠標(biāo)右鍵,在彈出菜單中選擇Insert->Element,或選擇Append->Element(因?yàn)榇藭r(shí)是空文檔,插入和追加是一樣的),這時(shí)增加了一行。在<>符號(hào)后
74、面雙擊并輸入books字樣,即建立了根元素??梢詾檫@個(gè)XML文檔加入注釋,選中books后,在鼠標(biāo)右鍵菜單上選Append->Comment,在出現(xiàn)的“<!.”符后邊輸入“這個(gè)文檔包含網(wǎng)上書店中關(guān)于書的描述,文件名code3_13.xml”字樣,也可以不加這條注釋。bookinfo根元素建立后的結(jié)果如圖3.10所示。如果使用的XML SPY 2005,情況有所改變。進(jìn)入XSL SPY界面后,出現(xiàn)的是Text視圖區(qū),并且因?yàn)槌鲥e(cuò)而不能直接轉(zhuǎn)換到Grid視圖區(qū)。Text視圖區(qū)的第一行為<?xml version="1.0" encoding="UTF
75、-8"?>,將其中的UTF-8改稱GB2312,然后增加一行<books></books>,在點(diǎn)擊界面下方的“Grid”即可轉(zhuǎn)換到上述正常編輯狀態(tài)。圖3.9 空XML文檔主要界面圖3.10建立了根元素books后的界面2.增加子元素選中(單擊)books這一行的區(qū)域,單擊鼠標(biāo)右鍵,在彈出菜單中選Add child->Element,在books區(qū)域的子區(qū)域內(nèi)出現(xiàn)<>符,選中其后并輸入book字樣,即增加了子元素book。建立好book子元素后主要部分如圖3.11。圖3.11建立了子元素book后的界面再按如上方法建立book的子元素bo
76、okinfo,以及bookinfo的子元素title、author、publish、price,和publish的子元素publisher、ISBN、pubdate。其中添加多個(gè)子元素方法有兩種,這里以元素bookinfo為例來(lái)進(jìn)行說明。一種是選中bookinfo區(qū)域中title子區(qū)域以外的拐形區(qū)域,即處于bookinfo角度上,同樣點(diǎn)鼠標(biāo)右鍵選Add child->Element,接著輸入子元素名author。第二種方法是選中title子區(qū)域,即處在title的角度上,點(diǎn)鼠標(biāo)右鍵選Append->Element,接著輸入子元素名author。請(qǐng)讀者撤銷上述步驟,重新試驗(yàn),體會(huì)不同
77、角度Add child和Append的區(qū)別。3.給子元素輸入內(nèi)容給子元素輸入內(nèi)容,只需在相應(yīng)子元素的右側(cè)空格內(nèi)輸入所需內(nèi)容即可。如給title輸入內(nèi)容,界面主要部分形如圖3.12。圖3.12m 給title元素輸入了內(nèi)容后的部分界面4.給子元素增加屬性<book id="001" category="文藝" amount="100" remain="80" discount="8.7">上述語(yǔ)句行中的id、category、amount、remain、discount都是book元素的屬性。一個(gè)元素的屬性和子元素是等價(jià)的,都是描述這個(gè)元素的性質(zhì)和狀態(tài)的,這一點(diǎn)后續(xù)部分還將說明。但是,屬性與元素的寫法或表現(xiàn)形式是不一樣的。選中book區(qū)域,在右鍵菜單中選擇Add child->Attribute即出現(xiàn)“=”標(biāo)記的屬性區(qū)域,輸入屬性名id,這樣就增加了book元素的屬性id。在其右側(cè)的格子內(nèi)輸入id的值00
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ǎn)安全保障協(xié)議
- 2025年律師事務(wù)所策劃合作項(xiàng)目協(xié)議書
- 2025年公共交通業(yè)務(wù)經(jīng)營(yíng)權(quán)轉(zhuǎn)讓協(xié)議
- 2025年價(jià)格評(píng)估共享協(xié)議正式版
- 2025年雙邊租車策劃協(xié)議
- 2025年設(shè)備租賃與運(yùn)輸合同協(xié)議范例
- 2025年體育賽事票務(wù)分銷合同
- 2025年農(nóng)產(chǎn)品蔬菜合作經(jīng)營(yíng)協(xié)議書
- 2025年償還貸款計(jì)劃協(xié)議
- 2025年互惠策劃鞋類產(chǎn)品合作共識(shí)協(xié)議
- 2025年大慶職業(yè)學(xué)院高職單招語(yǔ)文2018-2024歷年參考題庫(kù)頻考點(diǎn)含答案解析
- 山東省濟(jì)南市2024-2024學(xué)年高三上學(xué)期1月期末考試 地理 含答案
- 【課件】液體的壓強(qiáng)(課件)-2024-2025學(xué)年人教版物理八年級(jí)下冊(cè)
- 實(shí)施彈性退休制度暫行辦法解讀課件
- 冷凍食品配送售后服務(wù)體系方案
- 2024-2030年中國(guó)自動(dòng)光學(xué)檢測(cè)儀(AOI)市場(chǎng)競(jìng)爭(zhēng)格局與前景發(fā)展策略分析報(bào)告
- 2024-2025學(xué)年人教版數(shù)學(xué)八年級(jí)上冊(cè)期末模擬試卷
- 銷售培訓(xùn)合同范例
- 財(cái)務(wù)工作總結(jié)與計(jì)劃-財(cái)務(wù)經(jīng)理總結(jié)與計(jì)劃
- 四川省成都市2023年中考道德與法治真題試卷(含答案)
- 【初中生物】病毒課件2024-2025學(xué)年人教版生物七年級(jí)上冊(cè)
評(píng)論
0/150
提交評(píng)論