【发布时间】:2009-11-16 20:04:32
【问题描述】:
我正在调查 XML 架构中的替换组,但似乎找不到官方规范。谁能指点我?
我想知道具有替换组属性的元素是否可以替换复杂或仅全局元素中的元素,如w3schools 声称的那样:
"注意所有元素在 替换组(头部元素 和可替代的元素)必须 被声明为全局元素, 不然不行!”
以上说法是真的吗?
因为每个全局元素都可以是 XML 实例的根 - 在它们上定义替换组有什么意义?
【问题讨论】:
我正在调查 XML 架构中的替换组,但似乎找不到官方规范。谁能指点我?
我想知道具有替换组属性的元素是否可以替换复杂或仅全局元素中的元素,如w3schools 声称的那样:
"注意所有元素在 替换组(头部元素 和可替代的元素)必须 被声明为全局元素, 不然不行!”
以上说法是真的吗?
因为每个全局元素都可以是 XML 实例的根 - 在它们上定义替换组有什么意义?
【问题讨论】:
替代组是一个非常复杂的野兽。本质上,它提供了一种表达<xs:choice> 结构的替代方式,而不必列出所有可能的选择。这意味着您可以在以后选择其他选项,而无需修改原始架构。
实际有用的用例非常少,而且仅限于设计为可被第 3 方扩展的模式。实际上,它们很难使用,也很难理解(请参阅 here 了解更多避免使用它们的原因)。
【讨论】: