我应该使用 XSD 1.1 来构建开放标准吗?
Should I be using XSD 1.1 to build an open standard?
我们被要求为一个开放的 XML 标准组合一组模式。
XSD 1.0 可以应对大部分规则,但有些地方会有点乱(尤其是考虑到可扩展性),它还需要实施者阅读一些规则的自由文本描述注释形式。
几乎所有规则都可以使用 XSD 1.1 实施,但是我们不确定这是否会过度限制实施者。
所以我的问题是,XSD 1.1 是否足够成熟,可以在野外使用?
使用原因 XSD 1.0
- 最小限制要求参数:通过要求最低公分母标准 XSD 1.0,最大限度地提高系统和团队之间的互操作性。
- 更广泛的工具和库支持:JAXB 和 xsd.exe
(.NET),例如,仍然不支持 XSD 1.1.
使用原因 XSD 1.1
- Assertions (
xs:assert
) 非常强大。利用 XPath 提供
表达超出核心内容的约束的灵活机制
类型建模。
- Conditional Type Assignment 在类型应该变化时很有用
每个属性值。
- 许多其他改进。请参阅 W3C XML 模式定义语言
(XSD) 1.1 第 1 部分:结构、附录 G 自版本以来的更改
1.0(非规范)
推荐
如果参与构建和交互系统的所有各方都准备迁移到 XSD 1.1 并且不依赖于仅支持 XSD 1.0 的工具或库,则迁移到 XSD 1.1。否则,坚持 XSD 1.0.
我们被要求为一个开放的 XML 标准组合一组模式。
XSD 1.0 可以应对大部分规则,但有些地方会有点乱(尤其是考虑到可扩展性),它还需要实施者阅读一些规则的自由文本描述注释形式。
几乎所有规则都可以使用 XSD 1.1 实施,但是我们不确定这是否会过度限制实施者。
所以我的问题是,XSD 1.1 是否足够成熟,可以在野外使用?
使用原因 XSD 1.0
- 最小限制要求参数:通过要求最低公分母标准 XSD 1.0,最大限度地提高系统和团队之间的互操作性。
- 更广泛的工具和库支持:JAXB 和 xsd.exe (.NET),例如,仍然不支持 XSD 1.1.
使用原因 XSD 1.1
- Assertions (
xs:assert
) 非常强大。利用 XPath 提供 表达超出核心内容的约束的灵活机制 类型建模。 - Conditional Type Assignment 在类型应该变化时很有用 每个属性值。
- 许多其他改进。请参阅 W3C XML 模式定义语言 (XSD) 1.1 第 1 部分:结构、附录 G 自版本以来的更改 1.0(非规范)
推荐
如果参与构建和交互系统的所有各方都准备迁移到 XSD 1.1 并且不依赖于仅支持 XSD 1.0 的工具或库,则迁移到 XSD 1.1。否则,坚持 XSD 1.0.