XML 信息集
XML 信息集是万维网联盟 (W3C) 在 2004 年 2 月 4 日发布的规范。XML 信息集是存储在 XML 文档中的信息的抽象模型。信息集以适合 XML 最习惯使用的方式建立数据与信息之间的分隔。通过引用 XML 信息集项目及其属性,定义了一些具体的 XML 数据模型。
鉴于 XML 信息集是存储在 XML 文档中的信息的抽象模型,信息项目就是 XML 文档的一些组件的抽象表示。SOAP V1.2 利用此抽象来定义 SOAP 消息中的信息,而从不引用 XML V1.x。SOAP HTTP 绑定明确地允许使用替代介质类型,这些介质类型至少可以传输 SOAP XML 信息集。
SOAP 消息传输优化机制 (MTOM) 根据信息项目描述 SOAP 1.2 构造,而 SOAP 1.1 根据 XML 元素进行定义。通过有选择地编码部分消息但仍向 SOAP 应用程序显示 XML 信息集,MTOM 使 SOAP 绑定能够优化 SOAP 消息的传输和/或有线格式。SOAP 1.2 属性现在处于 SOAP 名称空间中。XML 信息集需要 XML 名称空间支持。核心 XML 建议不需要 XML 名称空间支持;但是,名称空间是支持 XML 模式所必需的。
XML 信息集不需要或不偏爱特定接口或某类接口。为了简单明了起见,XML 信息集规范将信息集显示为树,但不要求将 XML 信息集以树结构的形式提供。其他类型的接口(包括但不限于基于事件和基于查询的接口)也可以提供符合信息集的信息。只要信息集中的信息能够以某种方式可用于 XML 应用程序,就满足了 XML 信息集的要求。
- 唯一的最小信息集仅包含核心项目的核心属性,不包含其他内容。
- 唯一的最大信息集包含所有核心项目和所有外围项目以及所有外围属性,且存在和不存在的外围项及其之间属性的每个组合都对应一个唯一的最大信息集。当中包含的信息集必须与最大信息集完全一致。
信息集项目
XML 信息集是在格式良好的 XML 文档中可用的信息的描述,它以根据一组信息集项目描述 XML 文档的抽象数据模型。信息项目是 XML 文档中某些部分的抽象描述,而每个信息项目都包含一组相关联的指定属性。所有其他信息项目都可直接或间接地通过其他信息项目的属性从文档信息项目的属性访问。
使用信息集项目的准则包括:
- 不要求 XML 文档必须有效才能包含信息集。
- XML 文档如果满足名称空间约束就可包含信息集。
- XML 文档如果格式良好就可以包含信息集。
- 信息集中只允许使用一个文档信息项目。
- XML 文档的信息集由两个或多个信息项目组成。
- 任何格式良好的 XML 文档的信息集至少包含以下最少的信息项目:一个文档信息项目和一个元素信息项目。
- 每个信息项目都包含一组相关联的属性,部分属性是核心属性,部分属性是外围属性。
- 文档信息项目
- 元素信息项目
- 属性信息项目
- 处理指示信息项目
- 未扩展的实体引用信息项目
- 字符信息项目
- 注释信息项目
- 文档类型声明 (DTD) 信息项目
- 未解析的实体信息项目
- 表示法信息项目
- 名称空间信息项目
某些种类的无效性会影响指定给某些属性的值。可以取消对实体、表示法、元素和属性的声明。可以多次声明表示法和元素。多次声明对于实体和属性有效。可能未定义或多次定义标识。在 XML 信息集规范中与信息项目定义相关的部分中记录了此类情况。
语法
属性 | 描述 |
---|---|
[children] | 按文档顺序列示的子信息项目的有序列表。 |
[document element] | 对应于文档元素的元素信息项目。 |
[notations] | 一组无序的表示法信息项目,DTD 中声明的每个表示法对应一组该信息项目。如果多次声明了任何表示法,那么此属性不包含任何值。 |
[unparsed entities] | 一组无序的未解析实体信息项目,DTD 中声明的每个未解析实体对应一组该信息项目。 |
[base URI] | 文档实体的基本 URI。 |
[character encoding scheme] | 用来表示文档实体的字符编码方案的名称。 |
[standalone] | 表示文档的独立状态,值为 yes 或 no。此属性来自文档实体开头 XML 声明中的可选独立文档声明,如果不存在独立文档声明,那么它不包含任何值。 |
[version] | 表示文档的 XML 版本的字符串。此属性来自可选存在于文档实体开头的 XML 声明,如果没有 XML 声明,那么就不包含任何值。 |
[all declarations processed] | 严格地讲,此属性不是文档的信息集的一部分。而是处理器是否已读取整个 DTD 的指示。其值是布尔值。如果它为 false,那么某些属性(如本节的随后描述所指示)可能是未知的。如果它为 true,那么就是已了解这些属性。 |
已知所有信息集用于描述已展开(即用其对应替换文本的信息项目表示)所有实体引用的 XML 文档。在实体引用不能展开的情况下,由于 XML 处理器尚未读取其声明或其值,将创建显式位置来表示信息集中的此类引用。