- 相關(guān)推薦
XML認(rèn)證知識(shí)點(diǎn):名稱(chēng)空間
XML(XML培訓(xùn) 編程語(yǔ)言培訓(xùn) )的用途不是單一的。雖然讀者可能看到編寫(xiě)只使用一個(gè)標(biāo)記符號(hào)集的文檔是相當(dāng)有用的。下面YJBYS小編為大家整理了關(guān)于XML認(rèn)證的知識(shí)點(diǎn),希望對(duì)你有所幫助。
為何引入名稱(chēng)空間?
XML的用途不是單一的。雖然讀者可能看到編寫(xiě)只使用一個(gè)標(biāo)記符號(hào)集的文檔是相當(dāng)有用的。
但是,問(wèn)題是,當(dāng)混雜和匹配不同的XML應(yīng)用程序的標(biāo)記時(shí),可能會(huì)發(fā)現(xiàn)同一個(gè)標(biāo)記已用于兩個(gè)不同對(duì)象。TITLE是指頁(yè)標(biāo)題還是書(shū)的標(biāo)題?ADDRESS是指公司的郵件地址還是Web站點(diǎn)管理人員的電子郵件地址?名稱(chēng)空間(namespace)可以解決這些諸如此類(lèi)的問(wèn)題,它是將URI與各標(biāo)記集相關(guān)聯(lián),并在每個(gè)元素前加上一個(gè)前綴,以表示它屬于哪個(gè)標(biāo)記集。于是,就可以有BOOK:TITLE和HTML:TITLE兩個(gè)元素或 POSTAL:ADDRESS和HTML:ADDRESS元素,而不只一類(lèi)TITLE或ADDRESS。
名稱(chēng)空間允許文檔中的每個(gè)元素和特性放在不同的命名域中。
URI和URL
XML文檔可用于Web,正如HTML和其他文檔一樣。使用時(shí),也如HTML文檔一樣,被統(tǒng)一資源定位符(Uniform Resource Locator,簡(jiǎn)寫(xiě)為URL)所引用。雖然URL已被人們廣泛理解并被廣泛支持,但XML規(guī)范使用的是更為通用的統(tǒng)一資源標(biāo)識(shí)符(Uniform Resource Identifier,簡(jiǎn)寫(xiě)為URI)。URI對(duì)于定位 Internet上的資源是更為通用的架構(gòu),更為注重資源而不太注重位置。理論上說(shuō),URI可找出鏡像文檔的最為近似的副本或是找出已經(jīng)從一個(gè)站點(diǎn)移動(dòng)到另一站點(diǎn)的文檔。實(shí)際上,URI仍然處于進(jìn)一步的研究之中,被當(dāng)前的軟件所唯一支持的一種URI正是URL。
用xmlns聲明名稱(chēng)空間
這個(gè)一個(gè)聲明名稱(chēng)空間的例子
xmlns:xsl="http://www.w3.org/TR/WD-xsl"
"http://www.w3.org/TR/WD-xsl"是一個(gè)URI引用。
URI為統(tǒng)一資源標(biāo)識(shí)符(Uniform Resource Identifier,簡(jiǎn)寫(xiě)為URI)。 URI對(duì)于定位Internet上的資源是更為通用的架構(gòu),更為注重資源而不太注重位置。不過(guò)當(dāng)前的軟件所唯一支持的一種URI正是URL。要注意的是這里用URI 只是為了聲明一個(gè)唯一的名稱(chēng)空間,并不是真的上www.w3.org的網(wǎng)站去尋找這個(gè)鏈接。
xsl表明以后如果用到以xsl為前綴的名字,那么它所表示的規(guī)則是在名稱(chēng)空間里預(yù)先定義好的,如“xsl:value-of”在"http://www.w3.org/TR/WD-xsl"這個(gè)名稱(chēng)空間預(yù)置的,它的意義是求值。
合法名稱(chēng)
合法名稱(chēng)的形式應(yīng)該是:前綴部分:本地部分
其中,“前綴部分”和“本地部分”都要求是一個(gè)合法的XML名稱(chēng)。前綴部分必須是一個(gè)已經(jīng)經(jīng)過(guò)聲明的名稱(chēng)空間前綴,語(yǔ)法分析器將把它與名稱(chēng)空間聲明中的 URI引用相聯(lián)系;本地部分則是在DTD或Schema中定義的元素和屬性名。下面給出一個(gè)合法名稱(chēng)的例子:
企業(yè)經(jīng)理:姓名
此外,由于名稱(chēng)空間的聲明方式有直接方式和缺省方式兩種,合法名稱(chēng)也稍有變化。缺省的聲明方式為 xmlns=URI。
由于缺省方式聲明的名稱(chēng)空間就是作用域內(nèi)的缺省名稱(chēng)空間,因此,在這個(gè)作用域內(nèi)使用該名稱(chēng)空間的元素、屬性的合法名稱(chēng)無(wú)須再寫(xiě)前綴部分。這樣一來(lái),元素的合法名稱(chēng)看上去和我們前面常用的元素名是一致的。由此可見(jiàn),我們一直在使用“合法名稱(chēng)”,只不過(guò)沒(méi)有意識(shí)到罷了。
名稱(chēng)空間作用于元素
合法名稱(chēng)可以用于起始元素標(biāo)記、結(jié)束元素標(biāo)記和空元素標(biāo)記。合法名稱(chēng)中的前綴部分必須是一個(gè)已經(jīng)聲明過(guò)的名稱(chēng)空間前綴,聲明的位置,既可以在使用該前綴的起始元素的標(biāo)記處,也可以是引用處的父輩元素標(biāo)記處。名稱(chēng)空間聲明是作用到說(shuō)明它的元素和該元素的所有子元素的,除非被其它名稱(chēng)空間聲明所覆蓋
例如:
<聯(lián)系人:聯(lián)系人列表 xmlns:聯(lián)系人 ="聯(lián)系人列表.dtd">
<聯(lián)系人:聯(lián)系人>
<聯(lián)系人:姓名>張三
<聯(lián)系人:ID>001
<聯(lián)系人:公司>A公司
<聯(lián)系人:EMAIL>zhang@aaa.com
<聯(lián)系人:電話(huà)>(010)62345678
<聯(lián)系人:地址>
<聯(lián)系人:街道>五街1234號(hào)
<聯(lián)系人:城市>北京市
<聯(lián)系人:省份>北京
<聯(lián)系人:直接上級(jí) xmlns:企業(yè)經(jīng)理 ="企業(yè)經(jīng)理.dtd">
<企業(yè)經(jīng)理:姓名>王五
<企業(yè)經(jīng)理:電話(huà)>
<企業(yè)經(jīng)理:秘書(shū)電話(huà)>(010)62345678
<企業(yè)經(jīng)理:手機(jī)>13601234567
名稱(chēng)空間"聯(lián)系人列表.dtd"的作用域,在除"直接上級(jí)"元素范圍以外的任何地方;而名稱(chēng)空間"企業(yè)經(jīng)理.dtd"的作用域在"直接上級(jí)"的各個(gè)子元素中。同樣,缺省的名稱(chēng)空間是作用到聲明它的元素和該元素的子元素的。當(dāng)然,這里所說(shuō)的元素都是那些沒(méi)有名稱(chēng)空間前綴的元素,有了前綴的元素仍然遵照前綴所指示的名稱(chēng)空間。
名稱(chēng)空間作用于屬性
同樣,合法名稱(chēng)也可用于屬性。除了XML預(yù)留的屬性(如我們反復(fù)用到的聲明命名空間的屬性)外,其它屬性都應(yīng)該使用"合法名稱(chēng)"。
一個(gè)具體的例子如下:
<聯(lián)系人 xmlns:企業(yè)經(jīng)理 = "http://www.xml.net.cn/聯(lián)系人列表.dtd">
<姓名 企業(yè)經(jīng)理:文種 = "中文">李華
<電話(huà) 企業(yè)經(jīng)理:城市 = "北京">62348765
【XML認(rèn)證知識(shí)點(diǎn):名稱(chēng)空間】相關(guān)文章:
XML認(rèn)證考試知識(shí)點(diǎn):Parser08-21
IBM XML認(rèn)證知識(shí)點(diǎn):Dtd09-01
關(guān)于IBM XML認(rèn)證考試的要點(diǎn)09-07
ibm認(rèn)證考試知識(shí)點(diǎn)08-05
企鵝媒體平臺(tái)認(rèn)證空間10-26
Linux認(rèn)證考試必考知識(shí)點(diǎn)09-02
華為認(rèn)證:HCSE路由知識(shí)點(diǎn)羅列08-03
關(guān)于XML的介紹08-29