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