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 でコンテンツを検証するには、「ファセットの実施」 で説明されているようにスキーマ検証を使用するようにランタイムを設定する必要があります。