XML Namespaces provide a method to avoid element name conflicts.
Name Conflicts
In XML, element names are defined by the developer. This often results in a conflict when trying to mix XML documents from different XML applications.
This XML carries HTML table information:
<table>
<tr>
<td>Apples</td>
<td>Bananas</td>
</tr>
</table>
This XML carries information about a table (a piece of furniture):
<table>
<name>African Coffee Table</name>
<width>80</width>
<length>120</length>
</table>
If these XML fragments were added together, there would be a name conflict. Both contain a <table> element, but the elements have different content and meaning.
An XML parser will not know how to handle these differences.
Solving the Name Conflict Using a Prefix
Name conflicts in XML can easily be avoided using a name prefix.
This XML carries information about an HTML table, and a piece of furniture:
<h:table>
<h:tr>
<h:td>Apples</h:td>
<h:td>Bananas</h:td>
</h:tr>
</h:table>
<f:table>
<f:name>African Coffee Table</f:name>
<f:width>80</f:width>
<f:length>120</f:length>
</f:table>
In the example above, there will be no conflict because the two <table> elements have different names.
XML Namespaces - The xmlns Attribute
When using prefixes in XML, a so-called namespace for the prefix must be defined.
The namespace is defined by the xmlns attribute in the start tag of an element.
The namespace declaration has the following syntax. xmlns:prefix="URI".
<root>
<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>
<f:table xmlns:f="http://www.w3schools.com/furniture">
<f:name>African Coffee Table</f:name>
<f:width>80</f:width>
<f:length>120</f:length>
</f:table>
</root>
When a namespace is defined for an element, all child elements with the same prefix are associated with the same namespace.
Namespaces can be declared in the elements where they are used or in the XML root element:
<root
xmlns:h="http://www.w3.org/TR/html4/"
xmlns:f="http://www.w3schools.com/furniture">
<h:table>
<h:tr>
<h:td>Apples</h:td>
<h:td>Bananas</h:td>
</h:tr>
</h:table>
<f:table>
<f:name>African Coffee Table</f:name>
<f:width>80</f:width>
<f:length>120</f:length>
</f:table>
</root>
Note: The namespace URI is not used by the parser to look up information.
The purpose is to give the namespace a unique name. However, often companies use the namespace as a pointer to a web page containing namespace information.
Default Namespaces
Defining a default namespace for an element saves us from using prefixes in all the child elements. It has the following syntax:
This XML carries HTML table information:
<table xmlns="http://www.w3.org/TR/html4/">
<tr>
<td>Apples</td>
<td>Bananas</td>
</tr>
</table>
This XML carries information about a piece of furniture:
<table xmlns="http://www.w3schools.com/furniture">
<name>African Coffee Table</name>
<width>80</width>
<length>120</length>
</table>
分享到:
相关推荐
理解命名空间(Namespaces)是XML学习的关键,它解决了在同一个文档中使用相同标签名但含义不同的问题。通过使用命名空间,不同的开发者或应用可以共享相同的标签而不产生冲突,例如 `xmlns=...
XML文档通常包括元素(Element)、属性(Attribute)、注释(Comment)、CDATA区域(CDATA Section)等组成部分,以及Namespaces(命名空间)的使用,这些都属于XML的术语范畴。 在XML文档中,DTD(Document Type ...
· 第一章:XML快速入门 ...· 五.Namespaces的语法 · 六.entity的语法 · 七.DTD的语法 · 第五章:XML实例解释 · 一.定义新标识 · 二.建立XML文档 · 三.建立相应的HTML文件 · 第六章:XML相关资源
书籍简介: · 第一章:XML快速入门 ...· 五.Namespaces的语法 · 六.entity的语法 · 七.DTD的语法 · 第五章:XML实例解释 · 一.定义新标识 · 二.建立XML文档 · 三.建立相应的HTML文件 · 第六章:XML相关资源
可是一大堆的概念和术语往往让人望而生畏,很多朋友问我:XML到底有什么用,我们是否需要学习它?我想就我个人学习过程的心得和经验,写一篇比较全面的介绍文章。首先有两点是需要肯定的: 第一:XML肯定是未来的...
注释的语法 · 四.CDATA的语法 · 五.Namespaces的语法 · 六.entity的语法 · 七.DTD的语法 · 第五章:XML实例解释 · 一.定义新标识 · 二.建立XML文档 · 三.建立相应的HTML文件 ·...
◎ XML轻松学习手册: · 第一章:XML快速入门 · 一. 什么是XML? · 二. XML是新概念吗? · 三. 使用XML有什么好处? · 四. XML很难学吗? · 五. XML和HTML的区别 · 六. XML的严格格式 · 七. 关于XML的更...
通过本教程的学习,参与者将能够掌握XML的基础知识及一系列重要的衍生技术,包括XML Schema、Namespaces、XPath、XSL 和 XSLT等。此外,教程还重点介绍了如何在Java程序中解析和处理XML文档,特别强调了这些技术在e-...
8. **XML命名空间(XML Namespaces)**:当多个XML文档需要使用相同的标签时,可能会产生冲突。XML命名空间提供了一种解决方法,通过前缀和URI(统一资源标识符)来区分不同的标签。 在提供的文件列表中,"XML实用...
4. **命名空间(Namespaces)**:讨论如何通过命名空间避免元素名称冲突,确保XML文档的可重用性。 5. **XML Schema与DTD**:解释XML Schema和文档类型定义(DTD)的作用,它们是用于验证XML文档结构和数据类型的...
- 名称空间(Namespaces):在XML中,名称空间用于区分具有相同标签名但来自不同来源的元素,通过前缀来标识不同的源,如`xmlns:ns="http://example.com/ns"`。 XML的实现: XML的解析通常由解析器完成,分为DOM...
在学习XML的过程中,还会接触到命名空间(Namespaces)、DTD(Document Type Definition)或XML Schema,它们用于定义XML文档的结构和语义。此外,XPath和XSLT也是XML处理的重要工具,XPath用于在XML文档中查找信息...
2. **XML命名空间(Namespaces)**: 当多个XML文档或库需要共享相同元素名称时,命名空间变得至关重要。通过定义命名空间前缀,如`xmlns:ns="http://example.com"`,可以避免命名冲突。 3. **DTD(Document Type ...
"轻松搞定XML"这本书作为XML学习的经典资源,旨在帮助读者深入理解XML的基础和高级特性,并能熟练运用到实际项目中。 首先,XML的基础知识包括其基本结构和语法。XML文档由元素(Element)、属性(Attribute)、...
本《XML学习手册第二版》深入浅出地介绍了XML的核心概念和技术,是学习XML编程的重要参考资料。 在XML的学习中,首先你需要理解XML的基本结构。XML文档由元素、属性、文本内容等组成。元素是XML的最基本单位,用尖...
XML and XML Namespaces XML 和 XML 名称空间 A basic understanding of DTD 对DTD有基本的了解 如果你想先学这些内容,请看我们主页上的的学习教程 -------------------------------------------------------...
五、XML命名空间(Namespaces) XML命名空间用于避免元素名冲突,通过使用URI(Uniform Resource Identifier)来标识元素的来源。例如,`xmlns:ns="http://example.com/ns"`定义了一个名为`ns`的命名空间。 六、XML...
XML,全称是eXtensible Markup Language...通过本指南的学习,你可以掌握XML的基础知识,包括其结构、语法规则、解析方式以及在实际场景中的应用。随着对XML的深入理解和实践,你将能够更好地驾驭数据,提高工作效率。
XML还支持命名空间(Namespaces),允许在同一个文档中使用来自不同来源的元素和属性,避免命名冲突。例如,`<html xmlns="http://www.w3.org/1999/xhtml">`就声明了一个名为`html`的命名空间,其URI指向W3C的XHTML...
为了提升XML的应用能力,你需要掌握XML的相关规范,如XML 1.0、XML Namespaces、XML Base等。同时,熟悉相关的API库,如Java的JAXB、DOM4J,Python的lxml等,将帮助你更好地在实际项目中运用XML。 总的来说,XML是...