Web サービス・メッセージ用の SDO データ・グラフのマッピング

Web サービス・メッセージの構造は、Web サービス・メッセージ用のサービス・データ・オブジェクト (SDO) バージョン 1 データ・グラフにより記述されます。

Web サービス・メッセージの全体のレイアウト

Web サービス・メッセージは、書式制御ストリングと、operationName、messageName、および messageType の 3 つのメタデータ・フィールドで記述されます。 メッセージのペイロードは、ヘッダー、添付ファイルおよび本体という 3 つの他のセクションにまたがって 分割されています。

Info ノードが、 すべての Web サービス・メッセージ用の SDO データ・グラフの最上位です。以下の表では、Info ノードのプロパティーおよび関連タイプを説明しています。

プロパティー名 プロパティー・タイプ プロパティーの説明
operationName java.lang.String このメッセージと関連付けられている WSDL オペレーションを識別する。データ・アクセス・サービスが メッセージを識別できない場合は、このフィールドはヌルです。 Web サービス・メッセージの識別を参照してください。
messageName java.lang.String このメッセージと関連付けられている WSDL メッセージを識別する。データ・アクセス・サービスが メッセージを識別できない場合は、このフィールドはヌルです。 Web サービス・メッセージの識別を参照してください。
messageType java.lang.String メッセージ・インスタンスの WebService タイプを識別する。このフィールドには、 inputoutputfaultambiguous の値があります。 データ・アクセス・サービスが メッセージを識別できない場合は、このフィールドはヌルです。 Web サービス・メッセージの識別を参照してください。
headers データ・オブジェクトの java.util.List ヘッダー・エントリー・データ・オブジェクトのリストを含みます。メッセージ内の各 SOAP ヘッダーは、 このリストにおいてヘッダー・エントリーとなります。メッセージ・ヘッダー・レイアウトを参照してください。
attachments データ・オブジェクトの java.util.List 添付エントリー・データ・オブジェクトのリストを含みます。添付ファイルを伴う SOAP メッセージでは、 メッセージの各 MIME パーツ (SOAP エンベロープ を含んでいる MIME パーツを除く) が、このリストのあるエントリーにマップされます。メッセージ添付レイアウトを参照してください。
本文 commonj.sdo.DataObject SOAP エンベロープの本体を表すネストされたデータ・オブジェクト。 メッセージ本体レイアウトを参照してください。

Web サービス・メッセージの識別

メッセージの処理は、メッセージに WSDL 定義があるかどうかに依存しています。 WSDL なしの処理に必要な最低限の情報量は、「SOAP:」です。WSDL ありの処理に必要な最低限の情報量は、「SOAP: ロケーション、名前空間、サービス、ポート」です。書式制御ストリングに、これらの 5 つのフィールドのすべてがない場合、SOAP データ・アクセス・サービスは WSDL なしでメッセージを処理しようと試みます。

  • WSDL 定義なしでメッセージを処理: 書式制御ストリングに、完全な WSDL 情報がない場合、SOAP データ・アクセス・サービスは、WSDL にある定義に対してメッセージの突き合わせを試みずにメッセージを処理します。その結果、operationName および messageName にはヌルが設定され、障害メッセージを処理する場合にのみ、messageType が設定されます。
  • WSDL ありでメッセージを処理: 書式制御ストリングに <WSDL location>、<Service namespace>、<Service name>、および <Port name> がある場合は、SOAP および Beans データ・アクセス・サービスは、サービスの WSDL 定義を使用してメッセージを処理します。
    注: 以下のいずれかの状況では、SOAP メッセージ処理は、必要なすべての WSDL 情報を提供した後に失敗します。
    • SOAP データ・アクセス・サービスが WSDL を位置指定するのに失敗する
    • WSDL がメッセージの確認に失敗する

SOAP データ・アクセス・サービスが SOAP 要求または応答メッセージを 処理する場合、WSDL にあるメッセージ定義に対してそれを突き合わせようと試みます。 通常は 1 つの一致する定義があり、operationName、messageName および messageType の値が適切に入力されます。 複数の一致する定義があった場合、データ・アクセス・サービスはメッセージ定義を選択し、operationName および messageName に値が入力され、messageType が ambiguous に設定されます。

障害メッセージを処理する場合は、識別がわずかに異なります。 すべてのケースにおいて、messageType には、fault が設定されることになります。メッセージが WSDL における固有の障害定義と一致した場合、operationName および messageName プロパティーも設定されることになります。

メッセージ・ヘッダー・レイアウト

ヘッダーのリストには、ヘッダー・エントリーとバインド・ヘッダー・エントリーの 2 つのタイプのエントリーがありますが、これはヘッダーがメッセージのパーツであるかどうかによって決まります。

ヘッダー・エントリー・タイプは、以下のいずれかの基準を満たすヘッダーを処理する場合に使用します。
  • ヘッダーが WSDL でモデル化されているメッセージの一部である。
  • ヘッダーが WSDL でモデル化されていないがメッセージの一部に基づく、メッセージの一部である。
このヘッダーのモデルについては、ヘッダー・エントリーを参照してください。

バインド・ヘッダー・エントリー・タイプは、メッセージ用の SOAP バインディングが本体の一部を MIME 添付にバインドした場合に使用されます。(これは、添付にメッセージの一部をバインドするために、<MIME:content> エレメントを 使用する場合に起こります。) 一貫性のあるメディエーション・プログラミングのために、 すべての本体データはグラフの本体ノードに格納されています。 通常の添付エントリーとは異なり、バインド添付エントリーは添付リスト内に置かれます。バインド添付エントリーには、添付用の MIME メタデータおよびこの添付から取ったデータを含むメッセージ・パーツが含まれています。 これにより、メディエーションがデータ・グラフの本体パーツにデータを配置する ように、添付を処理するよう設計されることが可能になります。 この添付のモデルについては、バインド・ヘッダー・エントリーを参照してください。

ヘッダー・エントリー

プロパティー名 プロパティー・タイプ プロパティーの説明
mustUnderstand java.lang.Boolean SOAP ヘッダー上の mustUnderstand 属性の値を格納します (存在する場合)。
actor java.lang.String SOAP ヘッダー上の actor 属性の値を格納します (存在する場合)。
任意 commonj.sdo.Sequence SOAP ヘッダーのコンテンツ用のコンテナー。

バインド・ヘッダー・エントリー

プロパティー名 プロパティー・タイプ プロパティーの説明
mustUnderstand java.lang.Boolean SOAP ヘッダー上の mustUnderstand 属性の値を格納します (存在する場合)。
actor java.lang.String SOAP ヘッダー上の actor 属性の値を格納します (存在する場合)。
messagePart java.lang.String メッセージ・ヘッダーのデータを格納するメッセージ・パーツの名前が入っています。

メッセージ添付レイアウト

メッセージ添付は、 ヘッダーと同様の方法で処理され、それらのインスタンスは Info ノードの添付リストを取り込みます。

MIME 添付を処理する添付エントリーには、添付エントリーとバインド添付エントリーの 2 つのタイプがあります。

添付エントリーは、一般添付用です。添付エントリーを参照してください。

バインド添付エントリーには、本体の一部を MIME 添付内にバインドした <MIME:content> エレメントが含まれています。メディエーションをプログラミングする場合は、グラフ内のデータの配置方法を知る必要があります。 一貫性のあるメディエーション・プログラミングのために、 添付データはメッセージ本体に配置され、他の MIME メタデータを含むヘッダー・エントリーの パーツ名によって参照されます。 この添付のモデルについては、バインド添付エントリー を参照してください。

添付エントリー

プロパティー名 プロパティー・タイプ プロパティーの説明
contentType java.lang.String 添付エントリーによって表されている MIME パーツの contentType を格納します。
contentTransferEncoding java.lang.String 添付エントリーによって表されている MIME パーツの contentTransferEncoding を格納します。
contentId java.lang.String 添付エントリーによって表されている MIME パーツの contentId を格納します。
data byte[] MIME エレメントのコンテンツをバイト配列として格納します。

バインド添付エントリー

プロパティー名 プロパティー・タイプ プロパティーの説明
contentType java.lang.String 添付エントリーによって表されている MIME パーツの contentType を格納します。
contentTransferEncoding java.lang.String 添付エントリーによって表されている MIME パーツの contentTransferEncoding を格納します。
contentId java.lang.String 添付エントリーによって表されている MIME パーツの contentId を格納します。
messagePart java.lang.String この添付のデータを格納するメッセージ・パーツの名前が入っています。

メッセージ本体レイアウト

本体のデータ・オブジェクトの レイアウトは、サービスの WSDL によって定義されています。データ・オブジェクトのタイプは、 WSDL でのメッセージ定義から派生しています。データ・オブジェクトは、メッセージ定義において 各パーツに 1 つのプロパティーを持つことになります。各メッセージ・パーツのレイアウトは、 XML スキーマを SDO にマッピングするための規則に従っています。詳しくは、Web サービス・コード実例を参照してください。

Web サービス障害メッセージ

メッセージが障害メッセージである場合、グラフの Info ノードにある messageType フィールドは「fault」に設定され、メッセージ本体は以下のプロパティーを持つことになります。

プロパティー名 プロパティー・タイプ プロパティーの説明
faultcode javax.xml.namespace.QName SOAP 障害エレメントの faultcode 値を格納します。
faultstring java.lang.String SOAP 障害エレメントの faultstring 値を格納します。
faultactor java.lang.String SOAP 障害エレメントの faultactor 値を格納します。
detail commonj.sdo.DataObject 詳細な SOAP 障害エレメントの子の中のコンテンツを格納します。
注: 詳細エレメント定義がエレメントおよび属性ワイルドカードを使用するため、詳細データ・オブジェクトのコンテンツには Sequence があります。 詳しくは、Web サービス・コード実例を参照してください。

トピックのタイプを示すアイコン 参照トピック



タイム・スタンプ・アイコン 最終更新: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rjy1111
ファイル名:rjy1111.html