请输入您要查询的百科知识:

 

词条 Canonical XML
释义

Canonical XML(规范化形式的XML)XML规范的一个子集。任何XML文档都可以转换为规范化形式的XML,因此将特定类型的微小差异去除却仍是该XML文档。由于这些特定的差异通常不认为是有意义的,转换成规范化形式的XML是判断两个XML文档逻辑上是否是同一个文档的好办法。

举例来说,XML允许在开始标签(tag)的不同点出现,属性可以按任何顺序书写,这些差异很少用来表达含义,因此这些形式通常被认为是相等的

<p class="a" secure="1">

<p secure = "1" class='a' >

在将一个任意XML文档到规范化形式的XML的转换中,属性将按标准书序(名字的字母顺序)排列,空格和引号被标准化。 这样上面的第二种形式将转换成第一种。

Canonical XML定义了一些规范化形式的规则,包括:

使用UTF-8编码

用0x0A字符表示换行符

属性值里的白空格被正规化

添加缺省属性的说明

CDATA标记的部分替换为相应的文字字符

展开实体引用

删除XML的声明和DTD

空元素使用开始/结束标签对,而不是用特殊的空元素语法

属性按照属性名的字母顺序排序

删除元素中多余的命名空间声明

讲一个文档转换为规范化形式的XML是幂等的。 也就是说,第一次转换通常产生与原文档不同的字符串,而重复的转换将不再产生变化。

根据W3C的规范,如果两个XML文档具有相同的规范化形式,那么在一定的应用上下文(极少见的情形除外)中,这两个文档在逻辑上是相等的。

然而,在特殊的上下文中,用户可能关心规范形式的XML逻辑等价之外的特殊语义。比如说,隐写术系统可能在XML文档中通过不同的白空格,属性引号和顺序,使用十进制或十六进制数字字符等等来隐藏信息。显然,将这样的文件转换为标准化形式的XML将丢失这些特殊的语义。而另一方面,XML文件使用大小写的不同,单词使用古代的拼写或现代的拼写等,在某种意义上可以看作是相同的,这样的语境超过了标准化形式XML的范围。

随便看

 

百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。

 

Copyright © 2004-2023 Cnenc.net All Rights Reserved
更新时间:2024/12/23 14:42:39