XML 命名空间(XML Namespaces)

为什么80%的码农都做不了架构师?>>>   hot3.png

  • XML 应用程序
  • XML CDATA

XML 命名空间提供避免元素命名冲突的方法。

命名冲突

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

命名空间的实际应用

当开始使用 XSL 时,您不久就会看到实际使用中的命名空间。XSL 样式表用于将 XML 文档转换为其他格式,比如 HTML。

如果您仔细观察下面的这个 XSL 文档,就会看到大多数的标签是HTML标签。非 HTML 的标签都有前缀 xsl,并由此命名空间标示:"http://www.w3.org/1999/XSL/Transform":

<?xml version="1.0" encoding="ISO-8859-1"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/"> <html> <body> <h2>My CD Collection</h2> <table border="1"> <tr> <th align="left">Title</th> <th align="left">Artist</th> </tr> <xsl:for-each select="catalog/cd"> <tr> <td><xsl:value-of select="title"/></td> <td><xsl:value-of select="artist"/></td> </tr> </xsl:for-each> </table> </body> </html> </xsl:template> </xsl:stylesheet>

转载于:https://my.oschina.net/wzzz/blog/220476

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/401865.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

交换机开发(四)—— ARP 基础知识解析

一、ARP协议简介 Internet是由各种各样的物理网络通过使用诸如路由器之类的设备连接在一起组成的。当主机发送一个数据包到另一台主机的过程中 可能要经过多种不同的物理网络。主机和路由器都是在网络层通过IP地址来识别的&#xff0c;这个地址是在全世界内唯一的。 然而&…

VRP网络操作系统简介

VRP (Versatile Routing Platform)即通用路由平台&#xff0c;是华为在通信领域多年的研究经验结晶&#xff0c;是华为所有基于IP/ATM构架的数据通信产品操作系统平台。运行VRP操作系统的华为产品包括路由器、局域网交换机、ATM交换机、拨号访问服务器、IP电话网关、电信级综合…

Type mismatch:

Type mismatch: cannot convert from java.sql.PreparedStatement to com.mysql.jdbc.PreparedStatement import java.sql.PreparedStatement; java连接数据库的问题&#xff1a;Type mismatch: cannot convert from ResultSet to ResultSet 包导入错了,你要导入的是import jav…

Linux 下挂载新硬盘方法

Linux的硬盘识别: 一般使用”fdisk -l”命令可以列出系统中当前连接的硬盘 设备和分区信息.新硬盘没有分区信息,则只显示硬盘大小信息. 1.关闭服务器加上新硬盘 2.启动服务器&#xff0c;以root用户登录 3.查看硬盘信息 #fdisk -l [cpp] view plaincopy Disk /dev/sda: 42.9 GB…

php面向对象之单表操作类

<?php //数据库单表操作类 define("HOST","localhost"); define("USER","root"); define("PASS",""); define("DBNAME","lamp78"); class Db {protected $link; //连接资源protected $…

C++ 学习基础篇(一)—— C++与C 的区别

编程的学习学无止境&#xff0c;只掌握一门语言是远远不够的&#xff0c;现在我们开始C的学习之路&#xff0c;下面先看下C 与C 的区别 一、C概述 1、发展历史 1980年&#xff0c;Bjarne Stroustrup博士开始着手创建一种模拟语言&#xff0c;能够具有面向对象的程序设计特色。在…

C++学习基础篇 —— 引用()的用法和应用

一、引用简介 引用就是某一变量&#xff08;目标&#xff09;的一个别名&#xff0c;对引用的操作与对变量直接操作完全一样。 引用的声明方法&#xff1a;类型标识符&引用名目标变量名&#xff1b; 【例1】&#xff1a; [cpp] view plaincopy int a; int &raa; //定义…

js 数组遍历for..in弊端

//for..in在数组中的弊端 原则上数组Array对象是不能操作的&#xff0c;但是有些程序员开始不注意把Array的原型链上添加了方法就会出现意想不到的bug//例如var arr [1,2,3];Array.prototype.test function() { }for(var i in arr) { //。。。。操作 }就会把test遍历出来 会出…

C++基础知识(一)—— C++程序结构

下面我们从一个最简单的程序入手看一个C程序的组成结构。 // my first program in C #include <iostream.h> using namespace std; int main() { cout << “Hello World!”; return 0; } Hello World! 上面左侧显示了我们的第一个程序的源代码&#xff0c…

给大家推荐一款高大上的代码高亮插件(sublime,github风格)——highlight.js

经常在一些大神博客里面看到非常好看的高亮代码&#xff0c;有sublime风格&#xff0c;GitHub风格等等。毫无疑问&#xff0c;好的高亮代码插件可以不仅仅让你的博文显得更高大上&#xff0c;更重要的是舒适的阅读体验。经过我在网上的一番搜罗&#xff0c;终于找到了一款非常赞…

C++基础知识(二)—— 变量和数据类型

你可能觉得这个“Hellow World”程序用处不大。我们写了好几行代码&#xff0c;编译&#xff0c;然后执行生成的程序只是为了在屏幕上看到一句话。的确&#xff0c;我们直接在屏幕上打出这句话会更快。但是编程并不仅限于在屏幕上打出文字这么简单的工作。为了能够进一步写出可…

WCF

http://www.cnblogs.com/wintersun/archive/2011/02/17/1956832.html

C++基础知识(三)—— 常量

一个常量&#xff08;constant&#xff09;是一个有固定值的表达式。 字&#xff08;Literals&#xff09; 字是用来在程序源码中表达特定的值。在前面的内容中我们已经用了很多的字来给变量赋予特定的值。例如&#xff1a; a 5;这句代码中5就是一个字常量。 字常量(literal…

Android获取本机号码及运营商

import android.content.Context; import android.telephony.TelephonyManager; import android.util.Log;public class SIMCardInfo {/*** TelephonyManager提供设备上获取通讯服务信息的入口。 应用程序可以使用这个类方法确定的电信服务商和国家 以及某些类型的用户访问信息…

C++基础知识(四)—— 操作符/运算符

前面已经学习了变量和常量&#xff0c;我们可以开始对它们进行操作&#xff0c;这就要用到C的操作符。有些语言&#xff0c;很多操作符都是一些关键字&#xff0c; 比如add, equals等等。C的操作符主要是由符号组成的。这些符号不在字母表中&#xff0c;但是在所有键盘上都可以…

Java中如何克隆集合——ArrayList和HashSet深拷贝

2019独角兽企业重金招聘Python工程师标准>>> 编程人员经常误用各个集合类提供的拷贝构造函数作为克隆List&#xff0c;Set&#xff0c;ArrayList&#xff0c;HashSet或者其他集合实现的方法。需要记住的是&#xff0c;Java集合的拷贝构造函数只提供浅拷贝而不是深拷…

C++基础知识(五)—— 基本输入输出

控制台(console)是电脑的最基本交互接口&#xff0c;通常包括键盘(keyboard)和屏幕(screen)。键盘通常为标准输入设备&#xff0c;而 屏幕为标准输出设备。 在C的iostream函数库中&#xff0c;一个程序的标准输入输出操作依靠两种数据流&#xff1a;cin 给输入使用和cout给输出…

PHP之preg_replace()与ereg_replace()正则匹配比较讲解

<?php//preg_replace()和ereg_replace()函数的使用的比较// -------preg_replace()--------------------------//1.进行字符串的查找的替换 $str "daoyu shi ge hao hai zi 5555"; $pattern "/\s/"; //如果将…

C++ 控制结构和函数(一) —— 控制结构

一个程序的语句往往并不仅限于线性顺序结构。在程序的执行过程中它可能被分成两支执行&#xff0c;可能重复某些语句&#xff0c;也可能根据一些判断结果而执行不同的语句。因此C 提供一些控制结构语句 (control structures) 来实现这些执行顺序。 为了介绍程序的执行顺序&…

如何安装Favicon

如何安装Favicon favicon.ico图像放在根目录下(也可以是其他目录)在页面源文件的<head></head>标签之间插入 <link rel"shortcut icon" href" /favicon.ico" /> 最后形成: <head> ... <link rel"shortcut icon" hre…