4.2.1 Schema演进

本博客采用知识共享署名 4.0 国际许可协议进行许可

通常情况下,在添加或更改schema内容的同时维持命名空间的稳定性是相互矛盾的目标。虽然某些设计策略可以促进此类更改,但要预测较旧的实现将如何对任何给定的更改做出反应是很复杂的,这使得向未来兼容(forward compatibility)难以实现。尽管如此,为了命名空间的稳定性,保留在小版本修改中进行此类更改的权利。除了一些特殊的场景外(例如,修复重大缺陷或者错误),实现方应该期待在小版本中保持向未来兼容的(forward compatibility)schema更改,即允许新消息根据旧模式进行验证。

实现方应该期望并准备好根据为这些类型制定的处理规则来处理新的扩展和消息类型。小版本修改可能会引入新类型,利用第7节中描述的扩展设施。当在强制语义的上下文中遇到此类扩展时,较旧的实现应该优雅地拒绝它们。示例包括新的查询、语句或条件类型。

Last updated

Was this helpful?