20.2.2 SOAPボディおよびSOAPヘッダと参照先のwsdl:part要素の記述について
wsdl:input要素とwsdl:output要素の子要素として記述するSOAPボディおよびSOAPヘッダの記述と,SOAPボディおよびSOAPヘッダから参照されるwsdl:part要素の記述について説明します。
以降では,SOAP 1.1仕様の場合を例に説明します。SOAP 1.2仕様の場合は,名前空間や要素名,属性値などを読み替えてください。
- 〈この項の構成〉
(1) SOAPヘッダを定義しない場合
soap:body要素にparts属性を記述する場合でも,記述しない場合でも,親要素となるwsdl:input要素またはwsdl:output要素から参照されるwsdl:message要素の子要素には,wsdl:part要素を1個だけ記述してください。
soap:header要素を記述しない場合の記述例を次の図に示します。
(2) SOAPヘッダを定義する場合
soap:header要素を記述する場合,次に示す内容に従って定義してください。
-
soap:header要素のmessage属性には,親要素であるwsdl:input要素,またはwsdl:output要素から参照されるwsdl:message要素を指定してください。
-
soap:header要素のpart属性には,message属性に指定したwsdl:message要素以下に宣言されているwsdl:part要素を指定してください。宣言されていないwsdl:part要素を指定した場合は,標準エラー出力とログにエラーメッセージが出力され,cjwsimportコマンドの処理が終了されます(KDJW51022-E)。
-
soap:body要素のparts属性は省略できません。親要素となるwsdl:input要素,またはwsdl:output要素から参照されるwsdl:message要素の複数のwsdl:part子要素のうち,どの要素をsoap:body要素にバインドするのかを指定してください。バインドしない場合は,空の文字列を指定してください。
soap:body要素のparts属性に参照されていないwsdl:message要素のwsdl:part要素,または存在しないwsdl:part要素を指定した場合は,標準エラー出力とログにエラーメッセージが出力され,cjwsimportコマンドの処理が終了されます(KDJW51021-E)。また,soap:body要素のparts属性を指定していない場合も,標準エラー出力とログにエラーメッセージが出力され,cjwsimportコマンドの処理が終了されます(KDJW51179-E)。
soap:header要素を記述する場合の記述例を次の図に示します。