34.4. リスト
概要 リンクのコピーリンクがクリップボードにコピーされました!
XML スキーマは、スペースで区切られた単純型のリストであるデータ型を定義するためのメカニズムをサポートしています。リスト型を使用した primeList の例は、例34.7「リストタイプの例」 に記載されています。
例34.7 リストタイプの例
<primeList>1 3 5 7 9 11 13<\primeList>
<primeList>1 3 5 7 9 11 13<\primeList>
XML Schema リストタイプは通常 Java List<T> オブジェクトにマッピングされます。このパターンの唯一のバリエーションは、メッセージ部分が XML スキーマリストタイプのインスタンスに直接マップされる場合です。
XML スキーマでのリストタイプの定義 リンクのコピーリンクがクリップボードにコピーされました!
XML スキーマのリスト型は単純型で、simpleType 要素を使用して定義されます。リストタイプを定義するために使用される最も一般的な構文を 例34.8「XML スキーマリストタイプの構文」 に示します。
例34.8 XML スキーマリストタイプの構文
atomType に指定された値は、リスト内の要素のタイプを定義します。指定できるのは、xsd:int または xsd:string などの組み込み XML スキーマアトミック型のいずれか、リストではないユーザー定義の単純型だけです。
リストタイプにリストされている要素のタイプを定義することに加えて、ファセットを使用してリストタイプのプロパティーをさらに制約することもできます。表34.3「リストタイプファセット」 リストタイプで使用されるファセットを示します。
| ファセット | 結果 |
|---|---|
|
| リストタイプのインスタンスの要素数を定義します。 |
|
| リストタイプのインスタンスで許可される要素の最小数を定義します。 |
|
| リストタイプのインスタンスで許可される要素の最大数を定義します。 |
|
| リストタイプのインスタンスの要素の許容値を定義します。 |
|
| リストタイプのインスタンスの要素の字句形式を定義します。パターンは正規表現を使用して定義されます。 |
たとえば、例34.7「リストタイプの例」 に示される simpleList 要素の定義を、例34.9「リストタイプの定義」 に示します。
例34.9 リストタイプの定義
<simpleType name="primeListType"> <list itemType="int"/> </simpleType> <element name="primeList" type="primeListType"/>
<simpleType name="primeListType">
<list itemType="int"/>
</simpleType>
<element name="primeList" type="primeListType"/>
例34.8「XML スキーマリストタイプの構文」 に示す構文に加えて 例34.10「リストタイプの代替構文」 に示すあまり一般的でない構文を使用してリストタイプを定義することもできます。
例34.10 リストタイプの代替構文
リストタイプ要素の Java へのマッピング リンクのコピーリンクがクリップボードにコピーされました!
要素がリストタイプとして定義されている場合、リストタイプはコレクションプロパティーにマップされます。collection プロパティーは Java List<T> オブジェクトです。List<T> が使用するテンプレートクラスは、リストのベースタイプからマッピングされたラッパークラスです。たとえば、例34.9「リストタイプの定義」 で定義されたリストタイプは List<Integer> にマッピングされます。
ラッパータイプマッピングの詳細については、「ラッパークラス」 を参照してください。
リストタイプパラメーターの Java へのマッピング リンクのコピーリンクがクリップボードにコピーされました!
メッセージ部分がリストタイプとして定義されている場合や、リストタイプの要素にマップされる場合、作成されるメソッドパラメーターは List<T> オブジェクトではなくアレイにマッピングされます。配列の基本型は、リスト型の基本クラスのラッパークラスです。
たとえば、例34.11「リストタイプのメッセージ部分を持つ WSDL」 の WSDL フラグメントは結果は、例34.12「リスト型パラメーターを使用した Java メソッド」 に示すメソッドシグネチャーになります。
例34.11 リストタイプのメッセージ部分を持つ WSDL
例34.12 リスト型パラメーターを使用した Java メソッド