`
wlb2517
  • 浏览: 53825 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

xml命名空间

xml 
阅读更多
XML命名空间主要完成两件事情. 首先, 与C#的命名空间一样, 它们可以帮助避免命名冲突. 当你要合并来自两个不同XML文件的时候这可能会成为一个问题. 其次, 命名空间赋予了名称一个绝对的意义. 例如, 名称”nil” 可以代表任何意思, 然而, 如果和http://www.w3.org/2001/XMLSchema-instance命名空间一起, “nil”表示类似于C#当中null的意思, 并且有特定的规则指示其如何被应用.

XML的命名空间是使用xmlns属性来定义的:

   1: <customer xmlns="OReilly.Nutshell.CSharp"/>
xmlns是一个特殊的保留属性. 当我们这样使用时, 它主要执行两个功能:

它为有疑问的元素指定了一个命名空间
它为所有后代元素指定了一个默认的命名空间
我们也可以使用一个前缀(prefix)指定命名空间——这可以用来避免重复.主要有两个步骤——定义前缀和使用前缀. 我们也可以类似下面的做法将它们同时定义:

   1: <nut:customer xmlns:nut="OReilly.Nutshell.CSharp"/>
两件不同的事情在这里产生. 在右边, xmlns:nut=”…”定义了一个前缀叫做nut并使其对于元素本身以及它所有的后代元素都是可用的. 在左边, nut:customer应用了最新定义的前缀到customer元素上.

一个被定义了前缀的元素不会为它的后代元素定义默认的命名空间. 在下面的XML片段中, firstname包含一个空的命名空间:

   1: <nut:customer nut:xmlns="OReilly.Nutshell.CSharp">
   2:   <firstname>Joe</firstname>
   3: </customer>
为了将OReilly.NutShell.CSharp的前缀给予firstname, 我们必须使用下面的做法:

   1: <customer
   2:   xmlns:i="http://www.w3.org/2001/XMLSchema-instance"
   3:   xmlns:z="http://schemas.microsoft.com/Serialization/">
   4:   ...
   5: </customer>
我们也可以将命名空间赋值到属性上, 不同之处在于它总是要求一个前缀. 例如:

   1: <customer
   2:   xmlns:nut="OReilly.Nutshell.CSharp" nut:id="123"  />
另一个不同之处在于一个未经修饰的属性总是包含一个空的命名空间: 其永远不会从父元素继承一个默认的命名空间.
分享到:
评论

相关推荐

    WebApi去除XML命名空间

    首先,我们需要了解XML命名空间的作用。XML命名空间是一种用于解决XML文档中元素和属性名称冲突的方法。它们通过使用URI(统一资源标识符)作为唯一标识,为元素和属性提供上下文。然而,在某些情况下,我们可能希望...

    WebApi返回xml格式时去除命名空间

    XML命名空间是为了避免元素名称冲突而引入的概念,它为XML文档中的元素提供了唯一的标识。然而,在某些场景下,例如与JavaScript或简单的数据解析应用集成时,我们可能希望去掉这些命名空间以简化处理。 要实现这个...

    python xml命名空间

    ### Python XML命名空间详解 在处理XML文档时,命名空间(Namespace)的使用十分常见,尤其是在需要合并多个来源的数据或确保元素唯一性的情况下。本文将详细介绍Python中如何处理XML命名空间,包括理解命名空间的...

    XML 命名空间(XML Namespaces).pdf

    XML命名空间的引入正是为了解决这种命名冲突问题。它通过给元素和属性名称附加命名空间的方式,区分不同来源的同名元素,从而能够在一个XML文档中混合使用多个不同的XML文档片段。 命名空间的基本语法是在XML元素的...

    winform 使用XML命名空间源码

    在WinForm应用中,我们可以利用XML命名空间来处理XML文件,实现数据的读取、写入和解析。本资源包含的源码展示了如何在WinForm程序中有效地使用XML命名空间。 XML命名空间用于避免XML元素名称的冲突,它通过URI...

    XML的命名空间

    XML的命名空间

    dom4j 读取带有命名空间的xml文件

    在处理带有命名空间的XML文件时,DOM4J库显得尤为重要,因为XML命名空间是XML规范中一个关键的概念,用于避免元素名称的冲突。 XML命名空间的引入是为了在一个文档中使用来自不同来源的元素和属性。它们通过URI...

    C#读写XML文件,支持多层节点

    首先,我们需要了解.NET Framework提供的System.Xml命名空间,其中包含了处理XML文档的主要类。例如,XmlDocument、XmlNode、XmlElement等。在这个小测试程序中,我们可能使用了XmlDocument来创建、加载和修改XML...

    简单了解XML中的命名空间

    XML命名空间是一个用于区分具有相同名称的元素和属性的作用域概念,它通过使用URI(统一资源标识符)来唯一地标识这些名称。命名空间的使用,使得在同一个XML文档中可以包含来自不同源的数据,而不会出现名称冲突的...

    带命名空间的XML增删改查操作实例

    首先,理解XML命名空间的基本概念。命名空间通过一个URI(Uniform Resource Identifier)来唯一标识,通常以`xmlns:`前缀定义。例如,`xmlns:ns="http://example.com/ns"`声明了一个名为`ns`的命名空间,指向`...

    xml内容解析,包含命名空间时需特殊处理(dom4j)

    首先,我们需要理解XML命名空间的基本概念。命名空间通过使用一个URI(Uniform Resource Identifier)来唯一标识一组元素和属性。它们通常以`xmlns:`前缀形式出现,例如`xmlns:ns="http://example.com/ns"`。在XML文...

    Python利用命名空间解析XML文档

    XML命名空间通常以URI(Uniform Resource Identifier)的形式表示,它为XML元素提供了一种唯一标识的方式。在XML文档中,使用`xmlns`属性定义命名空间,例如`xmlns="http://www.w3.org/1999/xhtml"`。当查询这些带有...

    对象序列化:使用System.Xml.Serialization命名空间

    为了自定义XML命名空间,可以使用`XmlSerializerNamespaces`类,然后在`Serialize`方法中传入这个对象,以控制生成的XML文档中的命名空间。 总结来说,`System.Xml.Serialization`命名空间提供了丰富的工具,使得在...

    XPATH读取有命名空间的节点

    总结来说,处理带有命名空间的XML文档,特别是在使用XPath时,需要理解XML命名空间的概念,掌握DOM4J的命名空间注册方法,并能够正确构造XPath表达式。这样,即使面对复杂的XML结构,也能游刃有余地进行数据提取和...

    WCF 返回XML去除默认命名空间实例Demo

    当WCF服务返回XML时,它会默认添加一个命名空间,以确保数据的唯一性和可识别性。然而,在某些情况下,我们可能希望去除这些默认命名空间,以简化处理或满足特定需求。 **去除默认命名空间** 的主要目的是减少XML的...

    Web 服务编程技巧和窍门: 手工创建的 SOAP 消息中命名空间的处理

    首先,了解XML命名空间的基本概念。命名空间是一个URI(Uniform Resource Identifier),用于唯一标识一个XML文档中的元素和属性。在SOAP消息中,命名空间通过`xmlns`前缀定义,例如`xmlns:ns1=...

    通过Schema验证XML格式是否正确

    4. **System.Xml命名空间**:C#的System.Xml命名空间提供了处理XML文档的类和方法,如XmlSchema和XmlDocument,它们可用于加载和验证XML Schema以及读取和操作XML文档。 5. **XmlSchema类**:该类用于加载和处理XML...

    jquery解析带名称空间的xml

    jquery.xmlns-1.7.0.js 是根据jquery.xmlns.js改写的适用于各种版本的jquery解析带命名空间的XML数据,里面附有实例代码,如果使用中有遇到问题,可以反馈,我会进一步改进。

Global site tag (gtag.js) - Google Analytics