XML之命名空间

原创 2004年10月01日 23:03:00

问题的出现:XML的元素名字是不固定的,当两个不同的文档使用同样的名称描述两个不同类型的元素的时候,或者一个同样的标记表示两个不同含义的内容的时候,就会发生命名冲突。

问题的解决:命名空间(Namespace),对于每一套特定应用的DTD,给它一个独一无二的标志来代表,如果在XML中使用DTD中定义的元素,需将DTD的标志和元素名,属性连在一起使用,相当于指明了元素来自什么地方,这样就不会同其他同名元素混淆了(有点类似Java中包的作用,给它取个全名)。在XML中,采用现成的,在全球范围唯一的“域名”作为Namespace,即URL作为XMLNamespace

命名空间允许我们在一个文档中结合不同的元素和属性定义,并指明这些元素和属性的定义来自那里。

命名空间的语法如下:

    xmlns:[prefix]=”[url of name]”

其中“xmlns:”是必须的属性。“prefix”是命名空间的别名,它的值不能为xml

  <sample xmlns:ins=”http://www.lsmx.net.ac”><?xml:namespace prefix = o />

       <ins:batch-list>

              <ins:batch>Evening Batch</ins:batch>

</ins:batch-list>

        </sample>

值得注意的是batch-list,batch等标记必须在"http://www.lsmx.net.ac"中定义,别名为ins。注意在使用前必须先声明命名空间,在使用时别忘了“:”。

一,默认Namespace   xmlns=”[url of  namespace]”

二,指定了父元素的命名空间,子元素希望用自己的命名空间,可以在子元素中指定命名空间的别名。

三,属性也可以有自己的命名空间。

 

 

前面知识复习:

结构完整的XML文档是指符合XML规则的文档。合法的XML文档,不但要求结构完整,而且要求符合DTD验证。

DTD用来规定XML文档的语法结构,使得解析器能够理解XML文档的内容。

SYSTEM关键字代表DTD文件是一个外部文件,也就是解析器会根据SYSTEM后面的说明到外部去寻找这个DTD文件。

如果一个元素的CONTENT(元素类型)被声明为EMPTY的话,表示该元素不能包含任何子元素和文本。

ANY表示该元素其中可以包含任何本身有效的元素内容,也就是说,它能够包含在DTD其他位置已经声明过的元素。

PCDATA表明该元素可以包含任何字符数据,但是不能在其中包含任何子元素。

xml命名空间详解

在研究spring security的时候,里面提到了一个重要的感念就是命名空间,当时以为是spring的一个什么特殊功能,后来研究后才发现是xml的一个知识点,顺便又研究了一下这个知识,找到一篇文章...
  • w938706428
  • w938706428
  • 2014年11月24日 18:18
  • 4421

.net解析带命名空间的xml写法

先上xml 1 00000000-0000-0000-0000-000000000000 aaa 成功 需要注意,xmlns后面跟:**与不跟,读取时是不同...
  • yw1688
  • yw1688
  • 2013年07月09日 14:10
  • 740

C#中使用XPath读取带命名空间的XML文档

转自:http://www.cnblogs.com/secying/archive/2011/11/22/2258403.html XML 命名空间提供避免元素命名冲突的方法。 命名冲突 ...
  • hemeinvyiqiluoben
  • hemeinvyiqiluoben
  • 2017年01月18日 18:51
  • 728

Java XML操作之JAXB玩转命名空间

本文讲解使用jaxb结合dom4j的XMLFilterImpl过滤器实现序列化和反序列化的完全控制 主要实现以下功能 序列化及反序列化时忽略命名空间 序列化时使用@XmlRootEl...
  • qq_27376871
  • qq_27376871
  • 2016年09月07日 16:50
  • 1726

Android中XML的命名空间、自定义属性

基本概念介绍命名空间(namespace)XML 命名空间提供避免元素命名冲突的方法。打个比方,A学校有名学生叫做林小明,B学校也有名学生叫林小明,那我们如何识别这两名拥有相同名字的同学呢?这时候命名...
  • xx326664162
  • xx326664162
  • 2017年03月18日 15:11
  • 2721

去掉xml中的命名空间

有的时候xml中会带有命名空间使操作xml不方便,这时可以使用下面的方法xml类自带的函数去掉:removeNamespace(ns:Namespace ):XML删除该对象及其所有子级的给定命名空...
  • wkyb608
  • wkyb608
  • 2010年09月09日 15:42
  • 717

XML——c#读取带命名空间的xml

使用C#读取xml文件有三种常用的方式: 1、xmlDocument 2、XmlTextReader 3、Linq To Xml 但是这些方式在读写有些带命名空间的xml时就不知道怎么办了(例如把xa...
  • Shiyaru1314
  • Shiyaru1314
  • 2017年03月13日 20:00
  • 1190

XML DTD和XML SCHEMA以及命名空间的作用

xmlns xsi   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   xmlns:context="http://www.sprin...
  • gol_phing
  • gol_phing
  • 2015年07月29日 22:34
  • 819

Android之xml文档中的命名空间

Android中,我们所需要使用的大部分资源都是通过xml文件定义的,并且还需要在xml文件中定义相关控件的属性。但是在定义控件属性时,我们必须在前面加上android命名空间。在xml文档开头我们会...
  • w517520112z
  • w517520112z
  • 2016年03月27日 20:57
  • 787

自定义命名空间使用技巧之——命名空间与XML

      在一部分AS3项目 中XML是我们经常使用的一种保存数据 的手段,我们经常用XML来保存一些数据或者一些参数的设置。使用FLEX的朋友更是对MXML这个XML的加强定制版非常熟悉。那么...
  • wkyb608
  • wkyb608
  • 2010年11月05日 09:24
  • 750
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:XML之命名空间
举报原因:
原因补充:

(最多只允许输入30个字)