使用XML典型格式避免变异

ZDNet软件频道 时间:2003-04-30 作者:翻译:Java研究组织-Xiao Yifan |  我要评论()
本文关键词:
由于XML格式的差异性,在使用XML文档时容易引起一些问题。有很多看起来不一样的地方,它们本质上却是一样的。典型格式的目标就是要解决这样的问题,它提供了一种方法来转换XML文档。
本文译自Builder.com,未经许可请勿转载由于XML格式的差异性,在使用XML文档时容易引起一些问题。有很多看起来不一样的地方,比如名字空间的声明﹑空格﹑解析实体等等,它们本质上却是一样的。典型格式的目标就是要解决这样的问题,它提供了一种方法来转换XML文档。

问题

典型格式要解决的的中心问题是在XML文档中依据句法而出现的差异。比如,以下两句是等效的。

<MyTag/>

<MyTag></MyTag>

你可以看到,它们看起来不一样,但是表达了同样的信息。即MyTag标记没有属性,没有内容,也没有子元素。在所有XML语法中,这种例子还很多,语法上允许,但是很难明白他们逻辑上是在表达相同的东西。

解决方法

为了表达清晰,为XML文档建立一个物理表示标准很重要。方法就是创建典型XML文档。典型格式明确了标准和限制条件。当然,所有的典型格式的XML文档仍然是XML文档,但是所有的XML文档就不一定是典型格式的XML文档。

典型格式的XML文档定义

定义标准普通的XML文档和典型格式的XML文档,在规则上是有差异的。这些规则于2001年3月由W3C组织在典型格式的XML建议书中提出。以下部分将介绍这些规则。

UTF编码

Unicode Transformation Format (UTF)编码用来定义解释XML文档的方法字符集。一般来说,XML文档可以使用各种字符集。但是典型格式XML指定使用UTF。抛开细节讲,UTF是允许多位八进制字符的编码。UTF同时支持非标准ASCII码和标准ASCII码。

空元素转换

在典型格式XML中,空元素被转换成正确的有开始和结束标记的tag。另外,在开始和结束标记内,多余的空格会被去掉。元素属性会按照字典顺序排列。请参看下例:

<MyElement value="test1" type="status" decimal="2.0"/>

上面的片段转换后:

<MyElement decimal="2.0" type="status" value="test1">
</MyElement>

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