【问题标题】:XML Schema : substitution groupsXML 模式:替换组
【发布时间】:2009-11-16 20:04:32
【问题描述】:

我正在调查 XML 架构中的替换组,但似乎找不到官方规范。谁能指点我?

我想知道具有替换组属性的元素是否可以替换复杂或仅全局元素中的元素,如w3schools 声称的那样:

"注意所有元素在 替换组(头部元素 和可替代的元素)必须 被声明为全局元素, 不然不行!”

以上说法是真的吗?

因为每个全局元素都可以是 XML 实例的根 - 在它们上定义替换组有什么意义?

【问题讨论】:

    标签: xml schema


    【解决方案1】:

    替代组是一个非常复杂的野兽。本质上,它提供了一种表达<xs:choice> 结构的替代方式,而不必列出所有可能的选择。这意味着您可以在以后选择其他选项,而无需修改原始架构。

    实际有用的用例非常少,而且仅限于设计为可被第 3 方扩展的模式。实际上,它们很难使用,也很难理解(请参阅 here 了解更多避免使用它们的原因)。

    【讨论】:

    • 这是真的,但我正在编写一个需要支持替换组的工具。你能指点我的规格吗?
    • 规范在w3.org/TR/2001/REC-xmlschema-0-20010502/#SubsGroups。不过,祝你好运。
    • 我认为这取决于。在抽象的“父”元素上使用替换组比使用选择或序列生成更好的 JAXB 生成类。
    • 在不能使用 结构的情况下需要替换组,例如在 元素中,所以用例不是“少之又少”。他们确实很难相处。
    猜你喜欢
    • 1970-01-01
    • 2017-03-07
    • 2019-12-29
    • 2012-02-27
    • 2012-12-25
    • 1970-01-01
    • 2017-08-20
    • 2014-09-09
    • 1970-01-01
    相关资源
    最近更新 更多