34.5. 組合

概要

XML スキーマでは、共用体は、データがいくつかの単純な型の 1 つである可能性がある型を記述できるようにする構造です。たとえば、値が整数 1 または文字列 first のいずれかである型を定義できます。ユニオンは Java String にマッピングされます。

XML スキーマでの定義

XML スキーマユニオンは、simpleType 要素を使用して定義されます。これには、ユニオンのメンバー型を定義する union 要素が少なくとも 1 つ含まれます。ユニオンのメンバータイプは、ユニオンのインスタンスに格納できる有効なタイプのデータです。これらは union 要素の memberTypes 属性を使用して定義されます。memberTypes 属性の値には、1 つ以上の定義された単純な型名の一覧が含まれます。例34.13「単純な共用体タイプ」 は、整数または文字列のいずれかを格納できるユニオンの定義を示しています。

例34.13 単純な共用体タイプ

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

名前付き型をユニオンのメンバー型として指定することに加えて、匿名の単純型をユニオンのメンバー型として定義することもできます。これは、union 要素内に匿名タイプ定義を追加することで行います。例34.14「匿名メンバータイプのユニオン」 は、有効な整数の可能な値を 1 から 10 の範囲に制限する匿名メンバータイプを含むユニオンの例を示しています。

例34.14 匿名メンバータイプのユニオン

<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 の結合タイプは Java String オブジェクトにマッピングされます。デフォルトでは、Apache CXF は生成されたオブジェクトの内容を検証しません。Apache CXF でコンテンツを検証するには、「ファセットの実施」 で説明されているようにスキーマ検証を使用するようにランタイムを設定する必要があります。