SOAPメッセージの操作(SOAP Operation)を利用して、SOAPメッセージを操作します。
SOAP Operationの主な機能は、以下のとおりです。
SOAPメッセージの作成
SOAPメッセージからSOAPメッセージのボディ要素の情報取得
SOAPメッセージからSOAPメッセージのヘッダ要素の情報取得
SOAPメッセージの作成
Webサービスへ送信するためのSOAPメッセージを作成します。作成したSOAPメッセージは、共通メッセージのペイロードに格納されます。
SOAPメッセージの作成には、以下の方法があります。
SOAPメッセージのボディ要素だけを指定して作成
SOAPメッセージのヘッダ要素とボディ要素を指定して作成
以下は、SOAPメッセージのボディ要素だけを指定して作成した例です。
図2.22 SOAPメッセージの作成
SOAPメッセージのヘッダ要素、およびボディ要素のXML文書の文字コードは、“UTF-8”を使用することを推奨します。
作成したSOAPメッセージの文字コードは、“UTF-8”になります。
ボディ要素の情報取得
受信したSOAPメッセージからSOAPメッセージのボディ要素を取得します。取得したボディ要素は、共通メッセージのペイロードに格納されます。
図2.23 ボディ要素の情報取得
取得元のSOAPメッセージの文字コードは、“UTF-8”だけ使用できます。
取得したSOAPメッセージのボディ要素のXML文書の文字コードは、“UTF-8”になります。
ヘッダ要素の情報取得
受信したSOAPメッセージからSOAPメッセージのヘッダ要素を取得します。取得したヘッダ要素は、共通メッセージのペイロードに格納されます。
SOAPメッセージのヘッダ要素(SOAPヘッダ)は、標準規約の通信情報など特殊な用途で使用されます。通常のWebサービスでは、SOAPメッセージのボディ要素(SOAPボディ)だけが使用されます。
スキーマに関する名前空間は、SOAPメッセージから取得したボディ要素・ヘッダ要素に引き継がれます。
ボディ要素の情報取得の例では、SOAPメッセージから取得したXMLデータのルート要素に、以下の名前空間の宣言を追加しています。
xmlns:soapenc="http://shemas.xmlsoap.org/soap/encoding"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
取得元のSOAPメッセージの文字コードは、“UTF-8”だけ使用できます。
取得したSOAPメッセージのヘッダ要素のXML文書の文字コードは、“UTF-8”になります。