Unity3d對XML操作前期知識點_XML 命名空間(XML Namespaces)

XML 命名空間提供避免元素命名衝突的方法。

命名衝突

在 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> 元素,就會發生命名衝突。

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> 元素。

使用命名空間(Namespaces)

這個 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.w3school.com.cn/furniture">
   <f:name>African Coffee Table</f:name>
   <f:width>80</f:width>
   <f:length>120</f:length>
</f:table>

與僅僅使用前綴不同,我們爲 <table> 標籤添加了一個 xmlns 屬性,這樣就爲前綴賦予了一個與某個命名空間相關聯的限定名稱。

XML Namespace (xmlns) 屬性

XML 命名空間屬性被放置於元素的開始標籤之中,並使用以下的語法:

xmlns:namespace-prefix="namespaceURI"

當命名空間被定義在元素的開始標籤中時,所有帶有相同前綴的子元素都會與同一個命名空間相關聯。

註釋:用於標示命名空間的地址不會被解析器用於查找信息。其惟一的作用是賦予命名空間一個惟一的名稱。不過,很多公司常常會作爲指針來使用命名空間指向實際存在的網頁,這個網頁包含關於命名空間的信息。

請訪問 http://www.w3.org/TR/html4/

統一資源標識符(Uniform Resource Identifier (URI))

統一資源標識符是一串可以標識因特網資源的字符。最常用的 URI 是用來標示因特網域名地址的統一資源定位器(URL)。另一個不那麼常用的 URI 是統一資源命名(URN)。在我們的例子中,我們僅使用 URL。

默認的命名空間(Default Namespaces)

爲元素定義默認的命名空間可以讓我們省去在所有的子元素中使用前綴的工作。

請使用下面的語法:

xmlns="namespaceURI"

這個 XML 文檔攜帶着某個表格中的信息:

<table xmlns="http://www.w3.org/TR/html4/">
   <tr>
   <td>Apples</td>
   <td>Bananas</td>
   </tr>
</table>

此 XML 文檔攜帶着有關一件傢俱的信息:

<table xmlns="http://www.w3school.com.cn/furniture">
   <name>African Coffee Table</name>
   <width>80</width>
   <length>120</length>
</table>

命名空間的實際應用

當開始使用 XSL 時,您不久就會看到實際使用中的命名空間。XSL 樣式表用於將 XML 文檔轉換爲其他格式,比如 HTML。

如果您仔細觀察下面的這個 XSL 文檔,就會看到大多數的標籤是HTML標籤。非 HTML 的標籤都有前綴 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 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>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章