SOAPメッセージの操作(SOAP Operation)を利用して、SOAPメッセージを操作します。
SOAP Operationの主な機能は、以下のとおりです。
SOAPメッセージの作成
SOAPメッセージからSOAPメッセージのボディ要素の情報取得
SOAPメッセージからSOAPメッセージのヘッダ要素の情報取得
XML文書にSOAPタグを追加
SOAPメッセージからSOAPタグを削除
SOAPメッセージの作成
Webサービスへ送信するためのSOAPメッセージを作成します。作成したSOAPメッセージは、共通メッセージのペイロードに格納されます。
SOAPメッセージの作成には、以下の方法があります。
SOAPメッセージのボディ要素だけを指定して作成
SOAPメッセージのヘッダ要素とボディ要素を指定して作成
以下は、SOAPメッセージのボディ要素だけを指定して作成した例です。
図2.29 SOAPメッセージの作成
注意
SOAPメッセージのヘッダ要素、およびボディ要素のXML文書の文字コードは、“UTF-8”を使用することを推奨します。
作成したSOAPメッセージの文字コードは“UTF-8”です。
ボディ要素の情報取得
受信したSOAPメッセージからSOAPメッセージのボディ要素を取得します。取得したボディ要素は、共通メッセージのペイロードに格納されます。
図2.30 ボディ要素の情報取得
注意
取得元の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”です。
XML文書にSOAPタグを追加
XML文書にSOAPタグを追加します。SOAPタグが追加されたXML文書は、共通メッセージのペイロードに格納されます。
この機能は、XML文書にSOAPタグ(EnvelopeタグとBodyタグ)の追加だけを行います。このように処理の軽量化を行い、SOAPメッセージの作成を高速化させています。
図2.31 XML文書にSOAPタグを追加
ポイント
この機能は、SOAPメッセージの作成機能よりも高速にSOAPメッセージが作成できますが、使用する際は、以下の留意事項があります。留意事項が満たせない場合は、SOAPメッセージの作成機能を使用してください。
XML文書の文法チェックを行いません。そのため、SOAPタグを追加するXML文書は、整形式なXML文書を設定してください。
SOAPタグを追加するXML文書の編集を行いません。そのため、改行コードや名前空間はXML文書で考慮してください。
注意
XML文書の文字コードは“UTF-8”です。
作成したSOAPメッセージの文字コードは“UTF-8”です。
SOAPメッセージからSOAPタグを削除
SOAPメッセージからSOAPタグを削除します。SOAPタグが削除されたXML文書は、共通メッセージのペイロードに格納されます。
この機能は、SOAPメッセージからSOAPタグ(Envelopeタグ、Header要素、およびBodyタグ)の削除だけを行います。このように処理の軽量化を行い、ボディ要素の情報取得を高速化させています。
図2.32 SOAPメッセージからSOAPタグを削除
ポイント
この機能は、ボディ要素の情報取得機能よりも高速に情報を取得することができますが、使用する際は、以下の留意事項があります。留意事項が満たせない場合は、ボディ要素の情報取得機能を使用してください。
XML文書の文法チェックを行いません。そのため、SOAPメッセージは、整形式なXML文書を設定してください。
ボディ要素内の編集を行いません。そのため、改行コードや名前空間はボディ要素内で考慮してください。
コメントタグのチェックを行いません。そのため、Bodyの開始タグ以前およびBodyの終了タグ以降にコメントタグを記述していないXML文書を設定してください。
注意
取得元のSOAPメッセージの文字コードは“UTF-8”です。
取得したSOAPメッセージのボディ要素のXML文書の文字コードは“UTF-8”です。