メッセージ (Windows Web サービス)

メッセージは、送受信されるデータをカプセル化するオブジェクトです。 メッセージの構造は SOAP によって定義され、一連のヘッダーと本文が含まれます。 ヘッダーは常にメモリにバッファーされますが、本文はストリーミング API で読み取りと書き込みが行われます。

Diagram showing a message with the header being buffered and the body being streamed.

メッセージには、メッセージの動作を制御するオプションの設定を指定したり、受信したメッセージに関する追加情報 (セキュリティ情報など) を取得したりするために使用できる一連のプロパティがあります。 メッセージのプロパティの完全な一覧については、WS_MESSAGE_PROPERTY_ID のページを参照してください。

メッセージは、特定のエンドポイント アドレスにアドレス指定されます。

WS_FAULT は、リモート エンドポイントから返されるエラーを表すために使われる特別な種類のメッセージ コンテンツです。

メッセージはエンコードされ、XML が送信前に線形ワイヤ形式に変換されます。

メッセージの詳細については、「チャネル レイヤーの概要」トピックを参照してください。

以下の例は、WWSAPI でのメッセージの使用方法を示しています。

説明
CustomHeaderExample カスタム メッセージ ヘッダーの使用方法を示しています。
MessageEncodingExample メッセージのエンコードとデコードを示しています。
ForwardMessageExample メッセージの転送を示しています。

 

メッセージと共に使用される API 要素は次のとおりです。

Callback 説明
WS_MESSAGE_DONE_CALLBACK メッセージが WsReadEnvelopeStart 関数に指定された WS_XML_READER 構造体、または WsWriteEnvelopeStart 関数に指定された WS_XML_WRITER 構造体の使用が完了したことを呼び出し元に通知します。

 

列挙 説明
WS_ADDRESSING_VERSION アドレス指定ヘッダーに使用される仕様のバージョン。
WS_ENVELOPE_VERSION エンベロープ構造に使用される仕様のバージョン。
WS_HEADER_ATTRIBUTES ヘッダーの SOAP mustUnderstand および Relay 属性を表すフラグのセット。
WS_HEADER_TYPE ヘッダーの種類。
WS_MESSAGE_INITIALIZATION WsInitializeMessage でメッセージに追加されるヘッダーを指定します。
WS_MESSAGE_PROPERTY_ID 各メッセージ プロパティの ID。
WS_MESSAGE_STATE メッセージの状態。

 

機能 説明
WsAddressMessage メッセージに宛先アドレスを割り当てます。
WsCheckMustUnderstandHeaders 指定したヘッダーが受信側によって適切に認識されたことを確認します。
WsCreateMessage WS_MESSAGE オブジェクトのインスタンスを作成します。
WsCreateMessageForChannel 特定のチャネルでの使用に適したメッセージを作成します。
WsFillBody メッセージ内に、読み取りに使用できる十分なバイト数があることを確認します。
WsFlushBody 書き込まれたすべての蓄積されたメッセージ本文データをフラッシュします。
WsFreeMessage メッセージに関連付けられているメモリ リソースを解放します。
WsGetCustomHeader メッセージのアプリケーション定義ヘッダーを検索し、逆シリアル化します。
WsGetHeader メッセージ内の特定の標準ヘッダーを検索し、逆シリアル化します。
WsGetHeaderAttributes リーダーが配置されているヘッダー要素の WS_HEADER_ATTRIBUTES を ULONG パラメーターに設定します。
WsGetMessageProperty 指定した Message オブジェクト プロパティを取得します。
WsInitializeMessage 処理の準備としてメッセージのヘッダーを初期化します。
WsMarkHeaderAsUnderstood ヘッダーをアプリケーションによって認識されるものとしてマークします。
WsReadBody メッセージの XML リーダーから値を逆シリアル化します。
WsReadEnvelopeEnd メッセージの終了要素を読み取ります。
WsReadEnvelopeStart メッセージのヘッダーを読み取り、本文の要素を読み取る準備をします。
WsRemoveCustomHeader メッセージからカスタム ヘッダーを削除します。
WsRemoveHeader メッセージから標準の WS_HEADER_TYPE オブジェクトを削除します。
WsResetMessage メッセージの状態を WS_MESSAGE_STATE_EMPTY に戻します。
WsSetHeader メッセージ内の指定した標準ヘッダーを追加または置換します。
WsWriteBody メッセージの本文に値を書き込みます。
WsWriteEnvelopeEnd メッセージの終了要素を書き込みます。
WsWriteEnvelopeStart メッセージの現在のヘッダー セットを含むメッセージの先頭を書き込み、本文の要素を書き込む準備をします。

 

ハンドル 説明
WS_MESSAGE メッセージ オブジェクトを参照するために使用される不透明な型。

 

構造体 説明
WS_FAULT メッセージの本文に含まれる、処理エラーを示すエラー値。
WS_FAULT_CODE エラー コードを表します。
WS_FAULT_REASON エラーの説明が含まれています。
WS_MESSAGE_PROPERTIES WS_MESSAGE_PROPERTY 構造体のセットを指定します。
WS_MESSAGE_PROPERTY メッセージ固有の設定を指定します。