溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

XML名稱(chēng)空間是什么

發(fā)布時(shí)間:2021-09-17 14:16:26 來(lái)源:億速云 閱讀:98 作者:小新 欄目:編程語(yǔ)言

這篇文章主要介紹XML名稱(chēng)空間是什么,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

XML名稱(chēng)空間表示XML名稱(chēng)的使用范圍,因?yàn)閄ML可自定義元素標(biāo)簽,所以有不同XML應(yīng)用間XML名稱(chēng)重名的機(jī)會(huì)是很大的。

如果沒(méi)有一種方法來(lái)區(qū)分不應(yīng)用的名稱(chēng),就會(huì)造成混亂。XML名稱(chēng)空間就是為了解決這個(gè)問(wèn)題而設(shè)計(jì)的。通過(guò)XML名稱(chēng)空間,我們可以區(qū)分來(lái)自不同的XML應(yīng)用的具有相
XML名稱(chēng)空間表示XML名稱(chēng)的使用范圍,因?yàn)閄ML可自定義元素標(biāo)簽,所以有不同XML應(yīng)用間XML名稱(chēng)重名的機(jī)會(huì)是很大的。如果沒(méi)有一種方法來(lái)區(qū)分不應(yīng)用的名稱(chēng),就會(huì)造成混亂。XML名稱(chēng)空間就是為了解決這個(gè)問(wèn)題而設(shè)計(jì)的。通過(guò)XML名稱(chēng)空間,我們可以區(qū)分來(lái)自不同的XML應(yīng)用的具有相同名稱(chēng)的元素和屬性??梢詫?lái)自單一XML應(yīng)用的相關(guān)元素和屬性集合在一起,方便軟件識(shí)別和處理。
名稱(chēng)空間由前綴和本地部分組成,中間用冒號(hào)分隔。前綴標(biāo)識(shí)元素或?qū)傩缘乃诿Q(chēng)空間,本地部分標(biāo)識(shí)名稱(chēng)空間中的某個(gè)元素或?qū)傩?。整個(gè)名稱(chēng)也稱(chēng)為限定名稱(chēng)(qualified name)。前綴可以用除XML(大小寫(xiě)任意組合)三個(gè)字母外的任何合法的XML名稱(chēng)字符組成。每個(gè)限定名稱(chēng)中的前綴都必須與唯一的一個(gè)URI關(guān)聯(lián)。帶有相同URI關(guān)聯(lián)的前綴的名稱(chēng)屬于同一名稱(chēng)空間。

<rdf:RDF xmlns:rdf="http://www.w3.org/TR/REC-rdf-syntax#"> 
<rdf:Description about="http://www.example.com/test.xml"> 
<title>example</title> 
<author>linuxsir</author> ... </rdf:Description> 
</rdf:RDF>

前綴一般在使用該前綴的最上層元素中定義。在下層元素中也可定義不同的前綴:

<rdf:RDF xmlns:rdf="http://www.w3.org/TR/REC-rdf-syntax#"> 
<rdf:Description xmlns:dc="http://www.w3.org/dc/" about="http://www.example.com/test.xml"> 
<dc:title>example</dc:title> 
<dc:author>linuxsir</dc:author> ... </rdf:Description> 
</rdf:RDF>

通過(guò)將無(wú)前綴的xmlns屬性附加到根元素中,可以指定不帶前綴的元素及所有不帶前綴的子元素屬于某個(gè)名稱(chēng)空間。

<svg xmlns="http://www.w3.org/2000/svg"> 
<ellipse rx="110" ry="130" /> 
<rect x="4cm" y="1cm" /> 
</svg>

如果名稱(chēng)空間只用來(lái)識(shí)別來(lái)自某種XML應(yīng)用的元素和屬性,而不是用來(lái)區(qū)分具有相同名稱(chēng)的不同元素,則可在DTD的元素中定義一個(gè)固定的xmlns屬性,而不需要文檔中定義。定義方法如下:

<!ATTLIST svg xmlns CDATA #FIXED "http://www.w3.org/svg/">


在定義DTD時(shí),需要使用名稱(chēng)空間前綴的在定義時(shí)也要把前綴寫(xiě)到DTD定義里,如:

<!ELEMENT xlink:name (#PCDATA)>


使用參數(shù)實(shí)體引用來(lái)定義名稱(chēng)空間前綴可方便DTD文檔的維護(hù),整理發(fā)布!轉(zhuǎn)載請(qǐng)注明出處,謝謝!

<!ENTITY % prefix "xlink"> <!ENTITY % colon ":">


接著,利用該參數(shù)實(shí)體名稱(chēng)定義更多的參數(shù)實(shí)體引用,如:

<!ENTITY % xlink-title "%prefix;%colon;title"> <!ENTITY % xlink-author "%prefix;%colon;author">


這樣,如果需更改前綴,只需修改一個(gè)地方就可以了,不用整篇文檔修改。

<!ELEMENT %xlink-title; (#PCDATA)> 
<!ELEMENT %xlink-author; (#PCDATA)> 
不能在ATTLIST和ELEMENT聲明中直接使用%prefix;和%colon;,
因?yàn)樵诹硪粋€(gè)實(shí)體的外部使用這些參數(shù)實(shí)體時(shí),XML解析器會(huì)在實(shí)體替換文本的兩邊添加額外的空格。

以上是“XML名稱(chēng)空間是什么”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

xml
AI