`

XML的命名空间

    博客分类:
  • XML
阅读更多

转自:http://www.w3school.com.cn/xml/xml_namespaces.asp

 

 

命名冲突

在 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> 元素,就会发生命名冲突。

XML 解析器无法确定如何处理这类冲突。

使用前缀来避免命名冲突

此文档带有某个表格中的信息:

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

使用命名空间(Namespaces)

这个 XML 文档携带着某个表格中的信息:

<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>

此 XML 文档携带着有关一件家具的信息:

<f:table xmlns:f="http://www.w3school.com.cn/furniture">
   <f:name>African Coffee Table</f:name>
   <f:width>80</f:width>
   <f:length>120</f:length>
</f:table>

与仅仅使用前缀不同,我们为 <table> 标签添加了一个 xmlns 属性,这样就为前缀赋予了一个与某个命名空间相关联的限定名称。

XML Namespace (xmlns) 属性

XML 命名空间属性被放置于元素的开始标签之中,并使用以下的语法:

xmlns:namespace-prefix="namespaceURI"

当命名空间被定义在元素的开始标签中时,所有带有相同前缀的子元素都会与同一个命名空间相关联。

注释:用于标示命名空间的地址不会被解析器用于查找信息。其惟一的作用是赋予命名空间一个惟一的名称。不过,很多公司常常会作为指针来使用命名空间指向实际存在的网页,这个网页包含关于命名空间的信息。

请访问 http://www.w3.org/TR/html4/

统一资源标识符(Uniform Resource Identifier (URI))

统一资源标识符是一串可以标识因特网资源的字符。最常用的 URI 是用来标示因特网域名地址的统一资源定位器(URL)。另一个不那么常用的 URI 是统一资源命名(URN)。在我们的例子中,我们仅使用 URL。

默认的命名空间(Default Namespaces)

为元素定义默认的命名空间可以让我们省去在所有的子元素中使用前缀的工作。

请使用下面的语法:

xmlns="namespaceURI"

这个 XML 文档携带着某个表格中的信息:

<table xmlns="http://www.w3.org/TR/html4/">
   <tr>
   <td>Apples</td>
   <td>Bananas</td>
   </tr>
</table>

此 XML 文档携带着有关一件家具的信息:

<table xmlns="http://www.w3school.com.cn/furniture">
   <name>African Coffee Table</name>
   <width>80</width>
   <length>120</length>
</table>
分享到:
评论

相关推荐

    WebApi去除XML命名空间

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

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

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

    python xml命名空间

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

    xml命名空间

    xml命名空间讲解,很详细,很不错的讲义,希望对大家有帮助

    XML 命名空间(XML Namespaces).pdf

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

    winform 使用XML命名空间源码

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

    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