首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >XML模式1.1中的xs:redefine和xs:重写之间的区别

XML模式1.1中的xs:redefine和xs:重写之间的区别
EN

Stack Overflow用户
提问于 2014-02-03 10:54:28
回答 2查看 8.4K关注 0票数 6

XMLSchema1.1中的<xs::redefine><xs::override>有什么区别?我面前有两本关于XML的书,但我仍然无法分辨区别。我唯一确信的是,两者都是普遍存在的,而且<xs::redefine>是不受欢迎的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-02-03 13:11:28

使用重新定义,您可以扩展或限制组件(复杂类型、简单类型、模型组和属性组)。因此,您重用组件的原始定义,并扩展或限制它。

重写允许您替换组件的定义。因此,您将创建一个新组件,其名称与原始定义的名称相同。您可以覆盖任何顶级命名组件(复杂类型、简单类型、元素声明、属性声明、模型组、属性组和符号)。

您可以在这里阅读更多有关覆盖的信息:http://www.w3.org/TR/xmlschema11-1/#override-schema或阅读Roger XMLSchema1.1教程:http://www.xfront.com/xml-schema-1-1/index.html

我还推荐普里西拉·沃尔姆斯利( Priscilla Walmsley )的书:“确定的XML模式,第二版”

你好,屋大维

票数 4
EN

Stack Overflow用户

发布于 2014-02-03 11:28:40

http://www.w3.org/TR/xmlschema11-1/#override-schema摘录

在包含修改后的组件定义() (§4.2.4)中定义的构造在模式演化和版本控制中非常有用,因为在旧组件和重新定义的组件之间需要有一些有保证的限制或扩展关系。但是,在某些情况下,模式作者只是想不受任何约束地用新组件替换旧组件。此外,现有的XSD处理器已经实现了冲突的和不可互操作的解释,并且构造是·deprecated·。本节中定义的构造允许这样的无约束替换。 注意:本节其余部分中描述的重定义特性是·deprecated·,可能会从本规范的未来版本中删除。在本规范的互操作性或与本规范后期版本的兼容性很重要的情况下,鼓励模式作者避免使用它。

<xs:redefine>对已经定义的元素设置约束,这些元素与某些xml解析器不兼容。<xs:override>从本质上做了<xs:redefine>一直在做的事情,但在更改整个元素定义方面更加灵活,而不考虑已经定义的元素定义。XML解析器无需担心检查使用<xs:override>的先前定义的元素,但不需要检查<xs:redefine>的情况。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21525427

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档