Red Hat Training

A Red Hat training course is available for Red Hat Fuse

34.5. unions

概述

在 XML Schema 中,联合是一个构造,它允许您描述数据可以是多种简单类型之一的类型。例如,您可以定义一个类型,其值是整数 1 或字符串 first。unions 映射到 Java String

在 XML Schema 中定义

XML Schema unions 使用 simpleType 元素进行定义。它们至少包含一个联合 元素,用于定义该标头的成员类型。提取的成员类型是可存储在联合实例中的有效数据类型。它们使用 union 元素的 memberTypes 属性来定义。memberTypes 属性的值包含一个或多个定义的简单类型名称的列表。例 34.13 “简单联合类型” 显示可存储整数或字符串的联合定义。

例 34.13. 简单联合类型

<simpleType name="orderNumUnion">
  <union memberTypes="xsd:string xsd:int" />
</simpleType>

除了将指定类型指定为联合的成员类型外,您还可以将匿名简单的类型定义为区的成员类型。这可以通过在 union 元素中添加匿名类型定义来实现。例 34.14 “Union with Anonymous Member Type” 显示包含匿名成员类型的联合示例,该类型将有效整数的可能值限制为范围 1 到 10。

例 34.14. Union with Anonymous Member Type

<simpleType name="restrictedOrderNumUnion">
  <union memberTypes="xsd:string">
    <simpleType>
      <restriction base="xsd:int">
        <minInclusive value="1" />
        <maxInclusive value="10" />
      </restriction>
    </simpleType>
  </union>
</simpleType>

映射到 Java

XML Schema union 类型映射到 Java String 对象。默认情况下,Apache CXF 不会验证所生成的对象的内容。要使 Apache CXF 验证内容,您必须配置运行时以使用架构验证,如 “Enforcing facets”一节 所述。