运用命名空间来区分你的XML

ZDNet软件频道 时间:2002-11-22 作者:BUILDER.COM |  我要评论()
本文关键词:
XML的一个卖点是它有助于创建自定义词汇表;也就是说,一个组织可以创建XML词汇表来描述其产品。

XML的一个卖点是它有助于创建自定义词汇表;也就是说,一个组织可以创建XML词汇表来描述其产品。XML的结构描述或者DTD可以定义结构,这个结构能让其他的组织使用这个词汇表。然而,在定义一个XML实体,而这个实体又与其他组织所定义的实体起冲突的时候,问题就出现了。

XML命名空间的建议是定义一种方法,用去来区别重复元素类型和属性名称。例如,这样的重复会发生在一个文档里,它包含有来自两个不同DTD的元素类型和属性。

什么是命名空间?

XML命名空间是一个组织特有的XML词汇表的集合。它包括元素类型和属性名称。一个唯一的名称,也就是其统一资源指示器(URI),是为命名空间而创建的。这能防止来自不同组织的相似元素发生冲突。命名空间里的任何元素类型或者属性名称都是通过一个分成两部分的名称来唯一识别的:其XML命名空间的名称及其本地名称。这个分成两部分的命名系统是由XML命名空间建议推荐所定义的唯一东西。

创建你自己的空间

命名空间能让你唯一地区分和利用XML词汇表。使用命名空间,你可以

  • 把来自不同文档的片段组合到一起,而不会出现命名的冲突。
  • 编写能够为特定元素和属性所调用的可用重复使用的代码模块。
  • 定义能在其他结构描述或者实例文档里被重复使用的元素和属性,而不用担心名称的冲突。
使用不同的命名空间

命名空间通常是在XML文档的开始设置的,但是这不是必须的。它的确能够提高可读性,单是命名空间的声明可以被放在XML文档的任何位置。在声明一个XML命名空间的时候,使用以下的句法:

xmlns:prefix=”URI”

这一句的前缀指向一个定义命名空间的URI。这个URI并不用在XML文档处理的过程中;它只在XML查验对结构描述或者DTD的依附时才被参考到。这里是利用XHTML 1.0标准的XML命名空间声明的例子:

xmlns:html=”http://www.w3.org/1999/xhtml”

以下是一个利用这个命名空间的基本XML文档:

    <?xml version="1.0" encoding="ISO-8859-1"?>
<html xmlns:html=”http://www.w3.org/1999/xhtml”>
<html:head>
<html:title>
XML Namespace example
</html:title>
</html:head>
<html:body>
<books>
<book type=”hardback”>
<title>Atlas Shrugged</title>
<author>Ayn Rand</author>
<isbn>0525934189</isbn>
</book>
<book type=”paperback”>
<title>A Burnt-Out Case</title>
<author>Graham Greene</author>
<isbn>0140185399</isbn>
</book>
</books>
</html:body>
</html>

百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134