34.5. unions
概述 复制链接链接已复制到粘贴板!
在 XML 架构中,联合是一个构造,它允许您描述类型,其数据可以是多个简单类型之一。例如,您可以定义一个类型,其值为整数 1,或 首先 定义字符串。unions 映射到 Java StringString。
在 XML 架构中定义 复制链接链接已复制到粘贴板!
XML 架构表示法通过 simpleType 元素来定义。它们至少包含一个 用来定义 成员类型的联合元素。冲突的成员类型是有效的数据类型,可以存储在联合实例的实例中。它们使用 union 元素的 memberTypes 属性来定义。memberTypes 属性的值包含一个或多个定义的简单类型名称列表。例 34.13 “简单联合类型” 显示可以存储整数或字符串的联合定义。
例 34.13. 简单联合类型
<simpleType name="orderNumUnion">
<union memberTypes="xsd:string xsd:int" />
</simpleType>
除了将指定类型为 union 的成员类型外,您还可以将匿名简单类型定义为未发现的成员类型。这可以通过在 union 元素中添加匿名类型定义来实现。例 34.14 “Union(Aonymous Member Type)” 显示包含匿名成员类型的联合示例,该类型将有效整数的可能值限制为 1 到 10。
例 34.14. Union(Aonymous 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 架构联合类型映射到 Java String 对象。默认情况下,Apache CXF 不会验证生成的对象的内容。要让 Apache CXF 验证内容,必须将运行时配置为使用模式验证,如 “Enforcing facets”一节 所述。