XML规范形式与文档类型定义详解
1. XML规范形式
1.1 命名空间
文档中定义了一个命名空间,前缀为 “j”,命名空间名称为 “http://www.jazz.org/encyclopedia”。
1.2 XML规范形式概述
XML信息集以抽象形式表示XML文档,而XML文档的词法形式允许同一内容有多种变化。例如,属性可能以任意顺序出现,可能存在冗余的命名空间声明,字符内容可能使用或不使用CDATA表示等。这使得人和机器难以确定两个给定的XML文档是否等价(不是逐字相同,而是内容等价)。此外,消息摘要和数字签名使用的加密方法依赖于文档的文本表示。不同的文本表示会导致等价文档有不同的数字签名。因此,W3C建议的 “XML - 签名语法和处理” 依赖于现有的生成规范XML的方法。
W3C的 “规范XML” 定义了XML文档的规范形式,这是一种允许对两个XML文档进行简单字符串比较的语法形式。然而,该建议并未涵盖XML Schema引入的新特性,如各种新数据类型的规范形式。因此,XML Schema本身为其定义的所有内置数据类型的词法表示定义了规范形式。
1.3 规范文本
可接受的XML文档文本形式需满足以下要求:
- 规范XML文档始终使用UTF - 8编码。
- 所有换行符都规范化为 #xA。
- 字符实体引用被解析,即被引用的实体所替换。例如:
<!-- 非规范形式 -->
<!ENTITY euro #x20AC>
<price>&e