在XML schema 1.1中,""和""有什么区别?我手头有两本关于XML Schema的书,但仍然无法区分它们的差异。唯一确定的是两者都很普遍,而""已被弃用。
摘自http://www.w3.org/TR/xmlschema11-1/#override-schema
<xs:redefine>
构造定义于 "包括修改的组件定义()(§4.2.4)" 中,在模式演进和版本控制中非常有用,当希望具有旧组件和重新定义组件之间的某些保证的约束或扩展关系时。但是在有些情况下,模式作者只想使用新元素替换旧元素而没有任何约束。此外,现有的 XSD 处理器已经实现了相互矛盾且不可互操作的解释,并且<xs:redefine>
构造被《废弃》。本节中定义的<xs:override>
构造允许这种无约束替换。注意:本节其余部分所描述的重定义特性被《废弃》,可能会在未来版本的本规范中删除。鼓励模式作者避免在与本规范的后续版本的兼容性或互操作性很重要的情况下使用它。
<xs:redefine>
对已定义的元素施加了约束,这与一些 XML 解析器不兼容。 <xs:override>
做的实际上是 <xs:redefine>
,但在修改整个元素定义时更加灵活,而无需考虑已定义的元素。XML解析器在使用 <xs:override>
时不需要担心检查先前定义的元素,但使用 <xs:redefine>
则不然。
<xs::override>
只是 <xs::redefine>
的一个非歧义替代品。 - Olumide<xs:redefine>
会施加什么样的约束? - Olumide