This site uses cookies to deliver our services. By using this site, you acknowledge that you have read and understand our Cookie and Privacy policy. Your use of Kontext website is subject to this policy. Allow Cookies and Dismiss

XML中namespace 命名空间的作用

824 views 0 comments last modified about 9 years ago Raymond Tang

In this page

相信很多程序员刚接触XML的时候,对XML中的Namespace的用法不是很清楚,而且甚至不知道它到底有什么用,包括最初我自己也是。

不过之所以不理解这种Namespace主要是因为我们都习惯于将具有相同或者相近内容放在一个XML中,所以不会遇到一些问题。

看下面的情形:

<html xmlns="http://www.w3.org/HTML/1998/html4"
      xmlns:xdc="http://www.xml.com/books">
<head><title>Book Review</title></head>
<:body>
<xdc:bookreview>
   <xdc:title>XML: A Primer</xdc:title>
   <table>
    <tr align="center">
     <td>Author</td><td>Price</td>
     <td>Pages</td><td>Date</td></tr>
    <tr align="left">
     <td><xdc:author>Simon St. Laurent</xdc:author></td>
     <td><xdc:price>31.98</xdc:price></td>
     <td><xdc:pages>352</xdc:pages></td>
     <td><xdc:date>1998/01</xdc:date></td>
    </tr>
   </table>
</xdc:bookreview>
</body>
</html>
这里边有两个title元素,如果不属于不同的命名空间就很难分清楚,解决的办法就是添加一个Namespace :xmlns:xdc=http://www.xml.com/books

这样就不至于将html中的title元素和这里的title搞混淆了,而且在读取的时候,比如XmlReader之类的只要指定对应的命名空间 就会读取该命名空间下的节点,这样就不会发生错误了。

同时xmlns=http://www.w3.org/HTML/1998/html4这里就是设置默认的命名空间为http://www.w3.org/HTML/1998/html4

可能大家还会造成一定的误解,xmlns通常会制定为url,但是实际上这些url不一定是要存在的,也不一定是url,只要能够不至于让这个命名空间在其它xml文档出现就可以了,而一般之所以用url这是为了避免重复出现的可能性,因为一般不同的国家不同的程序员不会把Namespace指定为相同的,且url各不相同;但如果仅仅是简单的一些字符串则有可能出现不同xml文档 当命名空间相同的情况,而原本并不属于同一命名空间。也就是说Namespace是没有任何特定含义的,只是用于唯一标识这个命名空间。

XML中的Namespace如果.NET中的类库一样,它们仅用来唯一标识一组元素,就好想不同的dll中有可能有相同类名的情况,但却不属于不同的命名空间。

不过,我个人觉得XML的命名空间有点像鸡肋,因为它很容易给人造成误解,特别是用url来标识命名空间的时候,在平时运用中也不是很多,网上也有很多讨论XML的Namespace是否应该存在的话题。

参考这篇文档讲述得比较的清楚 http://www.xml.com/pub/a/1999/01/namespaces.html


Related pages

Issue - Unable to get property 'apply' of undefined or null reference occurred in Angular 4.*, VS2017 15.3, ASP.NET Core 2.0

6815 views   10 comments last modified about 2 years ago

Issue Context After installed Visual Studio 2017 15.3 preview and .net core 2.0 preview SDK, I upgraded one of my existing asp.net core project to 2.0. The project was created using ‘dotnet new angular’ SPA template.&nbsp; I also upgraded all the client app packages to the latest. For exa...

View detail

[Link] Build SPA on ASP.NET Core with JavaScript Services

455 views   0 comments last modified about 2 years ago

Great introduction about JavaScriptServices ( JavaScriptServices GitHub repository ): Microsoft.AspNetCore.SpaTemplates plugs into dotnet new , providing project templates for Angular 2, Aurelia, Knockout...

View detail

input submit input text css的写法

111 views   0 comments last modified about 10 years ago

本文介绍如何修改input控件submit以及text不同类型的样式。

View detail

JavaScript版本的杨辉三角

271 views   0 comments last modified about 9 years ago

前几天帮一个学弟写的,JavaScript版本的杨辉三角,其实和其他C、Java等等版本的都差不多。代码如下:

View detail

在网页中通过userAgent获取手机获取手机操作系统类型

1392 views   0 comments last modified about 7 years ago

本文介绍如果在JavaScript中根据手机浏览器提供的信息userAgent判断手机操作系统的类型,并执行相应的操作。

View detail

在.Net中使用msxsl:script脚本块扩展XSLT的具体实践与应用

340 views   0 comments last modified about 9 years ago

一概述XSLT可以用于将XML格式的数据转换为其它格式,在数据和展示分开以及数据相互转换中可以得到广泛的应用,比较典型的是以前的动网论坛模板系统以及动易的标签系统。掌握好XSLT可以灵活的处理XML,同时运用在Web应用程序中也非常的方便,不过缺点是使用者需要掌握大量的XPath、XSLT、XML等相关知识。

View detail

Add comment

Please login first to add comments.  Log in New user?  Register

Comments (0)

No comments yet.