XML 命名空間XML 命名空間提供避免元素命名沖突的方法。 命名沖突在 XML 中,元素名稱是由開發(fā)者定義的,當(dāng)兩個不同的文檔使用相同的元素名時,就會發(fā)生命名沖突。 這個 XML 攜帶 HTML 表格的信息: <table> <tr> <td>Apples</td> <td>Bananas</td> </tr> </table> 這個 XML 文檔攜帶有關(guān)桌子的信息(一件家具): <table> <name>African Coffee Table</name> <width>80</width> <length>120</length> </table> 假如這兩個 XML 文檔被一起使用,由于兩個文檔都包含帶有不同內(nèi)容和定義的 <table> 元素,就會發(fā)生命名沖突。 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> 在上面的實(shí)例中,不會有沖突,因?yàn)閮蓚€ <table> 元素有不同的名稱。 XML 命名空間 - xmlns 屬性當(dāng)在 XML 中使用前綴時,一個所謂的用于前綴的命名空間必須被定義。 命名空間是在元素的開始標(biāo)簽的 xmlns 屬性中定義的。 命名空間聲明的語法如下。xmlns:前綴="URI"。 <root> <h:table xmlns:h="http://www./TR/html4/"> <h:tr> <h:td>Apples</h:td> <h:td>Bananas</h:td> </h:tr> </h:table> <f:table xmlns:f="http://www./furniture"> <f:name>African Coffee Table</f:name> <f:width>80</f:width> <f:length>120</f:length> </f:table> </root> 在上面的實(shí)例中,<table> 標(biāo)簽的 xmlns 屬性定義了 h: 和 f: 前綴的合格命名空間。 當(dāng)命名空間被定義在元素的開始標(biāo)簽中時,所有帶有相同前綴的子元素都會與同一個命名空間相關(guān)聯(lián)。 命名空間,可以在他們被使用的元素中或者在 XML 根元素中聲明: <root xmlns:h="http://www./TR/html4/" xmlns:f="http://www./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 不會被解析器用于查找信息。 其目的是賦予命名空間一個惟一的名稱。不過,很多公司常常會作為指針來使用命名空間指向?qū)嶋H存在的網(wǎng)頁,這個網(wǎng)頁包含關(guān)于命名空間的信息。 請?jiān)L問 http://www./TR/html4/。 統(tǒng)一資源標(biāo)識符(URI,全稱 Uniform Resource Identifier)統(tǒng)一資源標(biāo)識符(URI)是一串可以標(biāo)識因特網(wǎng)資源的字符。 最常用的 URI 是用來標(biāo)識因特網(wǎng)域名地址的統(tǒng)一資源定位器(URL)。另一個不那么常用的 URI 是統(tǒng)一資源命名(URN)。 在我們的實(shí)例中,我們僅使用 URL。 默認(rèn)的命名空間為元素定義默認(rèn)的命名空間可以讓我們省去在所有的子元素中使用前綴的工作。它的語法如下: xmlns="namespaceURI" 這個 XML 攜帶 HTML 表格的信息: <table xmlns="http://www./TR/html4/"> <tr> <td>Apples</td> <td>Bananas</td> </tr> </table> 這個XML攜帶有關(guān)一件家具的信息: <table xmlns="http://www./furniture"> <name>African Coffee Table</name> <width>80</width> <length>120</length> </table> 實(shí)際使用中的命名空間XSLT 是一種用于把 XML 文檔轉(zhuǎn)換為其他格式的 XML 語言,比如 HTML。 在下面的 XSLT 文檔中,您可以看到,大多數(shù)的標(biāo)簽是 HTML 標(biāo)簽。 非 HTML 的標(biāo)簽都有前綴 xsl,并由此命名空間標(biāo)識:xmlns:xsl="http://www./1999/XSL/Transform": <?xml version="1.0" encoding="ISO-8859-1"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www./1999/XSL/Transform"> <xsl:template match="/"> <html> <body> <h2>My CD Collection</h2> <table border="1"> <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> |
|