<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> 元素,就會發生命名衝突。
XML 解析器無法決定如何處理這類衝突。
在XML 中的命名衝突可以透過使用名稱前綴從而容易地避免。
該XML 攜帶某個HTML 表格和某件家具的資訊:
<h:table><h:tr><h:td>Apples</h:td><h:td>Bananas</h:td></h:tr></h:table><f:table ><f:name>African Coffee Table</f:name><f:width>80</f:width><f:length>120</f:length></f:table>
在上面的實例中,不會有衝突,因為兩個<table> 元素有不同的名稱。
當在XML 中使用前綴時,一個所謂的用於前綴的命名空間必須被定義。
命名空間是在元素的開始標籤的xmlns 屬性中定義的。
命名空間聲明的語法如下。 xmlns:前綴=" URI "。
<root><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><f:table xmlns:f="//www.w3cschool.cn/furniture"><f:name>African Coffee Table</f:name><f:width>80</f:width><f:length>120</f:length></f:table></root>
在上面的實例中,<table> 標籤的xmlns 屬性定義了h: 和f: 前綴的合格命名空間。
當命名空間被定義在元素的開始標籤中時,所有具有相同前綴的子元素都會與同一個命名空間相關聯。
命名空間,可以在他們被使用的元素中或在XML 根元素中聲明:
<root xmlns:h="http://www.w3.org/TR/html4/"xmlns:f="//www.w3cschool.cn/furniture"><h:table><h:tr><h :td>Apples</h:td><h:td>Bananas</h:td></h:tr></h:table><f:table><f:name>African Coffee Table</f:name><f:width>80</f:width><f:length>120</f:length></f:table></root>
註:命名空間URI 不會被解析器用於查找資訊。
其目的是賦予命名空間一個唯一的名稱。不過,許多公司常常會作為指標來使用命名空間指向實際存在的網頁,而這個網頁包含關於命名空間的資訊。
請造訪http://www.w3.org/TR/html4/。
統一資源識別碼(URI)是一串可以標識網際網路資源的字元。
最常用的URI 是用來識別網域名稱位址的統一資源定位器(URL)。另一個不那麼常用的URI 是統一資源命名(URN)。
在我們的實例中,我們僅使用URL。
為元素定義預設的命名空間可以讓我們省去在所有的子元素中使用前綴的工作。它的語法如下:
xmlns="namespaceURI"
這個XML 帶有HTML 表格的資訊:
<table xmlns="http://www.w3.org/TR/html4/"><tr><td>Apples</td><td>Bananas</td></tr></table>
這個XML攜帶有關一件家具的資訊:
<table xmlns="//www.w3cschool.cn/furniture"><name>African Coffee Table</name><width>80</width><length>120</length></table>
XSLT 是一種用來把XML 文件轉換成其他格式的XML 語言,例如HTML。
在下面的XSLT 文件中,您可以看到,大多數的標籤是HTML 標籤。
非HTML 的標籤都有前綴xsl,並由此命名空間標識:
xmlns:xsl="http://www.w3.org/1999/XSL/Transform":<?xml version="1.0" encoding="ISO-8859-1"?><xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"><xsl:template match="/"><html><body><h2>My CD Collection</h2><table><tr><th align="left">Title</th><th align="left">Artist </th></tr><xsl:for-each select="catalog/cd"><tr><td><xsl:value-of select="title"/></td><td><xsl :value-of select="artist"/></td></tr></xsl:for-each></table></body></html></xsl:template></xsl:stylesheet>
如果您想要學習有關XSLT 的知識,請在我們的首頁找到XSLT 教學。