XMLNameSpace----XML命名空间

来源:互联网 发布:java免费开源网店系统 编辑:程序博客网 时间:2024/06/05 04:48

XML 命名空间提供了一种避免元素命名冲突的方法。
命名空间属性一般放置在元素的开始标记处,其使用语法如下所示:
xmlns:namespace-prefix="namespace",
例如:xmlns:f="http://www.w3schools.com/furniture"
W3C 命名规范声明命名空间本身就是一个统一资源标示符,Uniform Resource Identifier (URI)。

asp.net读取XML命名空间方式
XmlNamespaceManager namespaceManager = new XmlNamespaceManager(rssDoc.NameTable);
            namespaceManager.AddNamespace("sns", "http://blog.sina.com.cn/sns");
            XmlNode NodeTotalPage = rssDoc.SelectSingleNode("rss/channel/sns:index/sns:text", namespaceManager);

在进入正题之前,我们先引用一个例子:

<table><tr><td>Apples</td><td>Bananas</td></tr></table>

在上面这个XML中,有点类似于我们以前见到的HTML中的表格的功能,其实你也可以那样简单的认为这样;

<table><name>African Coffee Table</name><width>80</width><length>120</length></table>

在这个XML中,我们描述了一个桌子的信息,这样假如我们把这两个XML放到一个XML文件中,就会遇到命名冲突的问题,于是便有了Name space.
XML的命名空间----解决上述问题的途径:
一.使用前缀解决命名冲突的问题:
上面的两个文件变为以下内容:

1--
<h:table><h:tr><h:td>Apples</h:td><h:td>Bananas</h:td></h:tr></h:table>
2--

<f:table><f:name>African Coffee Table</f:name><f:width>80</f:width><f:length>120</f:length></f:table>
现在是不是可以很明显的把两种不同的信息分开了呢,通过<h:table>与<f:table>就可以方便的引用这两个文件了,
二.使用命名空间来解决这个问题:
1--
<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>
2---
<f:table xmlns:f="http://www.w3.org/TR/xsl"><f:name>African Coffee Table</f:name><f:width>80</f:width><f:length>120</f:length></f:table>
在上面的例子中,我们除了使用了前缀外,还使用了xmlns属性,xmlns即xml name space的缩写.
命名空间属性:
一般其声明在元素开始标记的地方,格式为:
xmlns:namespace-prefix="namespace"
如:xmlns:f=" http://www.w3.org/TR/xsl "
我们在命名的时候,文中出现的类似URL的东东其实没有实际的意义,只是一种标记.