XML Namespaces命名空間

來源:互聯網
上載者:User

程式寫得不少,或多或少都操作過XML,但對XML的一些概念不是完全瞭解,最近來學習一些XML的基礎知識。

XML Namespaces 命名空間

不仔細去看或用到XML的命名空間,我們還是很少去瞭解他的,也不知道這到底有什麼用。

XML 命名空間就像.net程式的命名空間一下,可提供避免元素命名衝突的方法。

何來命名衝突?由於 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> 元素,就會發生命名衝突,因為他的語義是不同的,也就是不同的東西,而我們都想把他命名為table。使用首碼來避免命名衝突

此文檔帶有某個表格中的資訊:

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

當我們使用 XSL 時,就會看到實際使用中的命名空間。XSL 樣式表用於將XML文檔轉換為其他格式,比如 HTML。

<?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="/">
</xsl:template>

 

.net 下的XML操作的命名空間,XmlNamespaceManager 解析集合的命名空間、向集合添加命名空間和從集合中移除命名空間,以及提供對這些命名空間的範圍管理,XPath 運算式中的任何首碼都使用提供的 System.Xml.XmlNamespaceManager 進行解析,如下是XPath的簡單樣本。

Console.WriteLine(x.DocumentElement.NamespaceURI);

XmlNamespaceManager xmlNamespace = new XmlNamespaceManager(x.NameTable);

xmlNamespace.AddNamespace("xsl", "http://www.w3.org/1999/XSL/Transform");

Console.WriteLine(x.SelectSingleNode("//xsl:template", xmlNamespace).NamespaceURI);

Console.WriteLine(x.SelectSingleNode("//xsl:template/html", xmlNamespace).NamespaceURI);

Console.ReadLine();

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.