Menu Close

35.5.4. 要素での発生の制約

概要

element 要素の minOccurs 属性と maxOccurs 属性を使用して、複合型の特定の要素の表示数を指定できます。両方の属性のデフォルト値は 1 です。

0 に設定された minOccurs

複合型のメンバー要素の minOccurs 属性のいずれかを 0 に設定すると、対応する Java メンバー変数に付けられる @XmlElement アノテーションが変化します。required プロパティーを true に設定する代わりに、@XmlElement アノテーションの required プロパティーが false に設定されます。

1 より大きい値に設定された minOccurs

XML スキーマでは、element 要素の minOccurs 属性を 1 より大きい値に設定することで、型のインスタンスで要素が複数回発生する必要があることを指定できます。ただし、生成される Java クラスは、XML スキーマの制約をサポートしません。Apache CXF は、minOccurs 属性が設定されていないかのように、サポートする Java メンバー変数を生成します。

maxOccurs が設定された要素

メンバー要素が複合型のインスタンスに複数回表示されるようにするには、要素の maxOccurs 属性を 1 よりも大きい値に設定します。maxOccurs 属性の値を unbounded に設定すると、メンバー要素を無制限に表示可能であることを指定します。

コードジェネレーターは、maxOccurs 属性が 1 を超える値に設定されたメンバー要素を List<T> オブジェクトである Java メンバー変数にマッピングします。リストのベースクラスは、要素の型を Java にマッピングすることで決定されます。XML スキーマプリミティブ型の場合、「ラッパークラス」で説明されているように、ラッパークラスが使用されます。たとえば、メンバー要素の型が xsd:int の場合、生成されるメンバー変数は List<Integer> オブジェクトになります。