WSDLのメッセージのパート(wsdl:message要素のwsdl:part子要素)からJavaのメソッドのパラメタおよび戻り値へのマッピングについて説明します。
ここでは,non-wrapperスタイルの場合について説明します。
図15-6 メッセージのパートとパラメタおよび戻り値のマッピング例(request-responseオペレーション)
図15-7 メッセージのパートとパラメタのマッピング例(one-wayオペレーション)
マッピングするときに,request-responseオペレーションまたはone-wayオペレーションのどちらの場合でも,メッセージのパート名(wsdl:part要素のname属性)の先頭文字は小文字に変換されます。
(変換前)PartName (変換後)partName
表15-11 パートの種類とJavaソースへのマッピングの関係(non-wrapperスタイル)
項番 | WSDLパートの種類 | Javaへのマッピング | |
---|---|---|---|
マッピング先 | マッピング方法 | ||
1 | in | パラメタ | javax.xml.ws.Holder<T>クラスでマッピングされません。java.lang.Stringなどのクラスでマッピングされます。 |
2 | inout | パラメタ | javax.xml.ws.Holder<T>クラスでマッピングされます。 |
3 | out | パラメタ | javax.xml.ws.Holder<T>クラスでマッピングされます。 |
4 | 戻り値 | javax.xml.ws.Holder<T>クラスでマッピングされません。java.lang.Stringなどのクラスでマッピングされます。 |
パート名には,次の表に示すすべての条件を満たす文字列を記述できます。ただし,バインディング宣言でカスタマイズする場合は,XML Schema仕様のxsd:NCName型として使用できる文字列を記述できます。
表15-12 パート名に記述できる文字列の条件(non-wrapperスタイル)
項番 | 条件 | 不正な文字列の例 | 不正な文字列を指定した場合の動作 |
---|---|---|---|
1 | 半角英数字(0~9,A~Z,a~z),およびアンダースコア(_)だけを使用した文字列 | 鈴木_part | 動作は保証されません(エラーメッセージは出力されません)。 |
2 | Javaの予約語以外の文字列※ | abstract | 標準エラー出力とログにエラーメッセージが出力され,処理が終了されます(KDJW51017-E)。 |
3 | 先頭が数字以外の文字列 | 1User_part | 標準エラー出力とログにエラーメッセージが出力され,処理が終了されます(KDJW51029-E)。 |
WSDL内でinputメッセージまたはoutputメッセージに出現するパートを複数記述した場合,パート名が同じで,かつ参照先のグローバル要素が同じときにだけ,同じパートとして扱われます。
パート名,参照先のグローバル要素のどちらかが異なる場合は,別のパートとして扱われます。
outputメッセージでoutのパートが1個だけの場合,メソッドの戻り値へマッピングされます。outのパートが2個以上の場合,戻り値にマッピングされません。