Hitachi

Cosminexus V11 アプリケーションサーバ SOAPアプリケーション開発の手引


3.3.3 生成されるWSDLの例

次のJavaメソッドに対して,Java2WSDLコマンドを実行したときに生成されるWSDLの例を示します。

public UserData getUserData(String user_no);
〈この項の構成〉

(1) RPC/LITERALを指定した場合

WSDLのスタイルで「RPC」,use属性で「LITERAL」を指定した場合に生成されるWSDLの一部とSOAPメッセージの例を示します。

図3‒6 RPC/LITERALを指定した場合のWSDLの生成例

[図データ]

WSDLのoperation要素のname属性値が,SOAPメッセージのボディ直下の要素に対応します(図の(1))。WSDLのpart要素が,SOAPメッセージのオペレーション名を表す要素(<getUserData>)の子要素に対応します(図の(2))。

また,WSDLのbinding要素以下のstyle属性が"rpc",use属性が"literal"になります。

(2) RPC/ENCODEDを指定した場合

WSDLのスタイルで「RPC」,use属性で「ENCODED」を指定した場合に生成されるWSDLの一部とSOAPメッセージの例を示します。

図3‒7 RPC/ENCODEDを指定した場合のWSDLの生成例

[図データ]

WSDLのoperation要素のname属性値が,SOAPメッセージのボディ直下の要素に対応します(図の(1))。WSDLのpart要素が,SOAPメッセージのオペレーション名を表す要素(<getUserData>)の子要素に対応します(図の(2))。SOAPメッセージにはエンコード情報(xsi:type="xsd:string")が含まれます。

また,WSDLのbinding要素以下のstyle属性が"rpc",use属性が"encoded"になります。

(3) DOCUMENT/LITERALを指定した場合

WSDLのスタイルで「DOCUMENT」,use属性で「LITERAL」を指定した場合に生成されるWSDLの一部とSOAPメッセージの例を示します。

図3‒8 DOCUMENT/LITERALを指定した場合のWSDLの生成例

[図データ]

WSDLのpart要素のelement属性で参照している要素(図の(1))が,SOAPメッセージのボディの子要素に対応します(図の(2))。

また,WSDLのbinding要素以下のstyle属性が"document",use属性が"literal"になります。

wrapped形式のWSDL

Java2WSDLコマンド実行時に,DOCUMENT/LITERALを指定して生成されたWSDLでは,オペレーションの引数がoperation要素のname属性の値から命名されたelement要素(次の図の(1))でラップされます(次の図の(2))。このような形式のWSDLをwrapped形式と呼びます。

図3‒9 wrapped形式のWSDLの例

[図データ]

nonwrapped形式のWSDL

wrapped形式でないDOCUMENTスタイルのWSDLをnonwrapped形式と呼びます。