Relax NG:XML 模式定义的替代方案
1. Relax NG 简介
2001 年 5 月 2 日 XML Schema 推荐标准发布不久后,8 月 11 日,一种替代的模式定义语言 Relax NG 诞生了。它由 OASIS 支持,OASIS 也是 ebXML 标准定义背后的组织之一。Relax NG 源于 James Clark 的 TREX 和 Murata Makoto 的 RELAX,其设计目的是打造一种与 XML Schema 功能相当,但更优雅、易用的模式语言。不过,目前行业标准仍是 XML Schema,大多数 XML 工具和中间件支持 XML Schema 而非 Relax NG。我们讨论 Relax NG 是为了通过与 XML Schema 对比,让大家更深入理解相关主题。
2. Relax NG 的结构
2.1 Relax NG 数据模型
Relax NG 的数据模型基于 XML 信息集。在 Relax NG 中,每个 XML 文档由一个元素(根元素)表示,每个元素包含以下部分:
- 名称:由命名空间 URI 和本地名称组成,空的命名空间 URI 表示没有命名空间。
- 上下文:由基础 URI 和命名空间映射(作用域内的命名空间)组成,可将前缀映射到命名空间 URI,还可声明默认命名空间。
- 属性集:每个属性由名称和字符串值组成。
- 子元素序列:零个或多个子元素,每个子元素可以是元素或非空字符串,允许连续的子元素,但不允许连续的字符串(两个连续字符串会合并为一个)。
2.2 元素和属性
Relax NG 中元素和属性的定义很直接,二者定义
超级会员免费看
订阅专栏 解锁全文
487

被折叠的 条评论
为什么被折叠?



