替代组是一个 XML 模式功能,它提供了在 XML 消息中使用一个元素替代另一个元素的方法。替代组是一个全局元素列表,这些全局元素可出现在称为头元素的另一个全局元素中。
通过将一个全局元素(成员元素)上的
替代组属性设置为指向另一个全局元素(头元素)来定义替代组。 这将成员元素添加到头元素的替代组。
注: 如果您正在从您的消息集生成字典,并将它们部署到
WebSphere Message Broker,您应该阅读
消息模型中的模式局限性
主题,并注意与替代组相关的部分。
提示: 如果您的消息从不渲染为 XML,或者如果您有一个简单消息模型,则应该考虑使用组合设置为选项的复杂类型或组,而不是使用替代组。
元素
- 头元素
- 头元素简单地是可替换的元素。当解析消息时,它的成员元素可以出现在头元素的位置,而不引起验证错误。
- 抽象元素
- 抽象元素是必须替代的头元素。元素上的“抽象”属性表明了这一点。通常,抽象元素将在它们的替代组中有其他元素 - 否则它们没有什么用处。无聊抽象元素出现在消息定义中的哪里,它的替代组中的成员必须代替它出现。
属性
- 元素上的阻塞属性
- 元素上的阻塞属性限制了可替代元素的全局元素的集合。阻塞属性可使用值局限性、扩展、替代
或全部的任何子集。
- 如果阻塞属性包含局限性,则基于元素的类型的限制的元素无法替换元素。
- 如果阻塞属性包含扩展,则基于元素的类型的扩展的元素无法替换元素。
- 如果阻塞属性包含替代,则是元素的替代组的成员的元素无法替代元素。
- 如果阻塞属性包含全部,则以上所有局限性都适用。
- 元素上的最终属性
- 元素上的最终属性限制了可以是元素的替代组的成员的全局元素的集合。最终属性可使用值局限性、扩展或全部的任意子集。
- 如果最终属性包含局限性,基于元素的类型的局限性的元素无法在元素的替代组中。
- 如果最终属性包含扩展,基于元素的类型的扩展的元素无法在元素的替代组中。
- 如果最终属性包含全部,则以上两条局限性都适用。
- 复杂类型上的阻塞属性
- 复杂类型上的阻塞属性限制了可以替代该类型的其他类型的集合。阻塞属性可使用值局限性、扩展或全部。这些值的含义与以上元素的阻塞属性显示的值含义相同。 作为替代组成员的元素只可以替代头元素,前提是该元素的类型与头元素类型上的阻塞属性兼容。
- 缺省阻塞和最终属性
- 可以在消息定义文件级别设置阻塞和最终属性的缺省值。如果已经为一个或两个属性设置了缺省值,并且未在对象级别设置相关阻塞或最终属性,则将对该对象使用缺省设置。可以覆盖对象级别中的缺省设置。