Xml 中的名字空間

2021-03-31 13:31:16 字數 1184 閱讀 8337

剛學 xml 的朋友經常會被名字空間搞糊塗,我來做一下簡單的解釋。

xml 節點的一般寫法是 《名字空間字首:節點名 名字空間字首:屬性》 如果名字空間字首省略,就是使用預設名字空間。節點名相同,而屬於不同名字空間的節點是不同的。

世界上有無數的 xml 文件,也就有無數的節點、屬性,它們的名字很可能是相同的。名字空間,就是是為了區別名字相同,而意義不同的節點、屬性。

比如文件 a 和 文件 b 中都有乙個名叫 "car" 的節點,但是文件 a 和文件 b 中的 "car" 的意義是完全不同的(比如乙個是火車乙個是汽車),如果沒有名字空間,這兩個文件中的節點完全沒有辦法區分。

先看乙個使用名字空間例子:

...名字空間是使用 xmlns 關鍵字來定義的。在這個例子中,xmlns="

" 定義了預設名字空間,所以 menu_items 就是屬於 「http://.hz-sp.***/2005/xmlschema-menu」這個名字空間的。同樣,menu_item 是menu_items 的子節點,而沒有名字空間字首,所以同樣屬於這個名字空間。menu_items 的子節點、屬性,如果沒有加名字空間字首,都屬於這個預設名字空間。也就是說, 中的節點、屬性如果沒有加名字空間字首,都屬於這個預設名字空間。

這句話定義了名字空間字首 xsi ,下面有 xsi:schemalocation=... 這樣的寫法,也就是說屬性 schemalocation 是屬於名字空間 "http://.w3./2001/xmlschema-instance" 的。

另外,雖然這些名字空間都是url形勢的,但是如果你點這個 url , 很可能會發現這是乙個不存在的 url, w3c 推薦使用 url 來命名名字空間,是為了保證名字空間命名的唯一性,你完全可以用 "myname007" 這樣的名字來命名你自己的名字空間,但這種做法不被推薦,因為這樣的名字不能保證唯一性。

C 中的名字空間

摘抄自 c primer plus 在c 中,名稱可以是變數 函式 結構 列舉 類以及類和結構的成員。當隨著專案的增大,名稱相互衝突的可能性也將增加。使用多個廠商的類庫時,可能導致名稱衝突。例如,兩個庫可能都定義了名為list tree和node的類,但定義的方式不相容。使用者可能希望使用乙個庫的l...

xml學習5 名字空間

我們知道我們在c 中為了防止函式名字重複我們可以設定名字空間 在 xml中也是一樣 當引用兩個 xml文件的時候 可能出現 元素名字相同 但是意義不同的2個元素 xml解析器無法處理這種情況 這時候為了處理這種情況 於是就出現了名字空間的概念,xml中的名字空間很簡單 看下面是乙個簡單的名字空間 w...

c 名字空間指令與名字空間宣告

在使用任何名字空間之前,編譯器必須能夠找到他,即確定他的宣告所在的作用域。使用某個名字空間中的名字最簡單的方式就是使用限定名字,即把名字空間的名字 如ns1 作為字首,然後加上作用域操作符 然而又是可能不願使用名字空間以追求 簡潔。可以通過下面實現 1.使用using指令 如 using names...