XML名字空間提供了一種避免元素名沖突的方法。
b>名字沖突
由於XML中的元素名不是固定的,因此當兩個不同的文檔使用同樣的名字描述兩個不同類型的元素時就會發生名沖突。
下面這個XML文檔在一個表格中攜帶了信息:
< table>
< tr>
< td>Apples< /td>
< td>Bananas< /td>
< /tr>
< /table>
下面這個XML文檔攜帶了關於一個表格的信息 (關於一件家具的信息):
< table>
< name>African Coffee Table< /name>
< width>80< /width>
< length>120< /length>
< /table>
如果這兩個XML文檔被加在一起,就會發生一個元素名沖突,因為這兩個文檔都包含了一個< table>元素,而這兩個元素的內容和定義都不同。
b>用一個前綴解決名沖突
下面這個XML文檔在一個表格中攜帶了信息:
< h:table>
< h:tr>
< h:td>Apples< /h:td>
< h:td>Bananas< /h:td>
< /h:tr>
< /h:table>
而這個XML文檔則攜帶了一件家具的信息:
< f:table>
< f:name>African Coffee Table< /f:name>
< f:width>80< /f:width>
< f:length>120< /f:length>
< /f:table>
現在就沒有元素名沖突的問題了,因為兩個文檔分別給他們的< table>元素使用了不同的名字:(< h:table> 和 < f:table>)。 通過使用一個前綴,我們創建了兩個不同類型的< table> 元素。
b>使用名字空間
下面這個XML文檔在一個表格中攜帶了信息 :
< h:table xmlns:h="http://www.w3.org/TR/html4/">
< h:tr>
< h:td>Apples< /h:td>
< h:td>Bananas< /h:td>
< /h:tr>
< /h:table>
這個XML文檔攜帶了一件家具的信息:
< f:table xmlns:f="http://www.w3schools.com/furniture">
< f:name>African Coffee Table< /f:name>
< f:width>80< /f:width>
< f:length>120< /f:length>
< /f:table>
在這裡不是只使用前綴,在< table>標記上還增加了一個 xmlns屬性,這樣就給元素前綴一個與名字空間相聯系的有資格的名字。
b>名字空間屬性
名字空間屬性放在一個元素的起始標記中,它的語法如下:
xmlns:namespace-prefix="namespace"
在上面的例子中,名字空間本身是用一個Internet 地址定義的:
&nbs