WebSphere Message Broker バージョン 8.0.0.5 オペレーティング・システム: AIX、HP-Itanium、Linux、Solaris、Windows、z/OS

製品の最新バージョンについては、IBM Integration Bus バージョン 9.0 をご覧ください。

SOAP ツリーの概説

ツリー形式により、SOAP メッセージの主な部分に簡単にアクセスすることができます。

以下は、SOAP ドメイン・ツリーを表した図です。

この図は、前後のテキストで説明されている SOAP パーサーを示しています。
SOAP ツリーには、以下のエレメントが含まれます。
SOAP.Header
SOAP ヘッダー・ブロック (Envelope.Header の子) が含まれます
SOAP.Body
SOAP ペイロード (Envelope.Body の子) が含まれます

Body サブツリーの内容は、WSDL スタイルに応じて異なります。

SOAP.Attachment
SwA メッセージの添付を非エンコード形式で含みます。

MTOM メッセージの添付は、SOAP 内容の一部としてインラインで、ベース 64 表記されることに注意してください。

SOAP.Context
以下の情報が含まれています。
  • Input。SOAPInput ノードによって取り込まれます。
    • operation - WSDL 操作名。 ゲートウェイ・モードでは、operation は、存在する場合は SOAP 本体エレメントの最初の子であるエレメントの名前であると想定され、存在しない場合は定数名「ComIbmBrokerGenericGatewayOperation」になります。
    • portType - WSDL ポート・タイプ名。 ゲートウェイ・モードでは、この項目は空になります。
    • port - WSDL ポート名 (認識されている場合)。 ゲートウェイ・モードでは、この項目は空になります。
    • service - WSDL サービス名 (認識されている場合)。 Gateway モードでは、サービスは定数名「ComIbmBrokerGenericGatewayService」になります。
    • fileName - 元の WSDL ファイル名。 ゲートウェイ・モードでは、この項目は空になります。
    • operationType -「REQUEST_RESPONSE」、「ONE_WAY」、「SOLICIT_RESPONSE」、「NOTIFICATION」のいずれか。 ゲートウェイ・モードでは、WSDL を除いて、このフィールドに「GATEWAY」が入ります。 つまり、「REQUEST_RESPONSE」または「GATEWAY_ONE_WAY」になります。 これは、操作タイプが片方向であることがノードで検出されることを意味します。
    • SOAP_Version -「1.1」または「1.2」のいずれか。
    • Namespace - nameValue の子エレメントを含みます。name は Namespace の接頭部、value はビット・ストリーム内に現れる Namespace の URI です。
    • XmlDeclaration - 標準的な XML 宣言を表します。
  • Output。SOAPRequest ノードまたは SOAPAsyncRequest ノードが SOAP メッセージを直列化する場合、オーバーライド情報を提供するために、SOAP.Context に以下のフィールドを置くことができます。
    • SOAP_Version -「1.1」または「1.2」のいずれか。
    • Namespace - 指定されたネーム・スペース URI (value) のために使用されるネーム・スペース接頭部 (name) を定義する、nameValue の子エレメントを含みます。

      出力メッセージは、対応するネーム・スペース内の任意のエレメントを修飾するために、ここで定義されたネーム・スペース接頭部を使用します。

      SOAP.Context が入力ノードで最初に作成されていた場合、必要とされるネーム・スペース接頭部定義すべてが、既にそこに含まれている可能性があります。

      SOAP.Context が存在しない場合、または出力メッセージが追加のネーム・スペースを使用する場合、SOAP パーサーは必要とされる任意のネーム・スペース接頭部を自動的に生成します。

      別の方法として、独自のネーム・スペース接頭部を指定することができます。1 つの重要な例外を除いて、ネーム・スペース接頭部の特定な名前は、メッセージの意味に影響を及ぼしません。 メッセージの内容に qualified name が含まれる場合、そのメッセージは一致するネーム・スペース接頭部定義を含んでいる必要があります。

      例えば、出力メッセージが soapenv:Server という値を持つ <faultcode> エレメントを含む SOAP 障害である場合、soapenv のためのネーム・スペース接頭部 (大/小文字を区別) が論理ツリー内で定義されている必要があります。
      -- Build SOAP Fault message. Note that as well as defining the correct 
      -- namespace for the Fault element, it is also necessary to bind the 
      -- namespace prefix used in the faultcode element (this is set up under 
      -- SOAP.Context.Namespace)
      
      -- Send back a new user defined SOAP 1.2 fault message
      DECLARE soapenv NAMESPACE 'http://www.w3.org/2003/05/soap-envelope';
      DECLARE xml     NAMESPACE 'http://www.w3.org/XML/1998/namespace';
      DECLARE myNS    NAMESPACE 'http://myNS';
      
      SET OutputRoot.SOAP.Context.Namespace.(SOAP.NamespaceDecl)xmlns:soapenv = soapenv;
      SET OutputRoot.SOAP.Context.Namespace.(SOAP.NamespaceDecl)xmlns:myNS = myNS;
      
      SET OutputRoot.SOAP.Body.soapenv:Fault.soapenv:Code.soapenv:Value = 'soapenv:Receiver';
      SET OutputRoot.SOAP.Body.soapenv:Fault.soapenv:Code.soapenv:Subcode.soapenv:Value = 'my:subcode value';
      SET OutputRoot.SOAP.Body.soapenv:Fault.soapenv:Reason.soapenv:Text = 'my Reason string';
      SET OutputRoot.SOAP.Body.soapenv:Fault.soapenv:Reason.soapenv:Text.(SOAP.Attribute)xml:lang = 'en';
      SET OutputRoot.SOAP.Body.soapenv:Fault.soapenv:Node = 'my Node string';
      SET OutputRoot.SOAP.Body.soapenv:Fault.soapenv:Role = 'my Role string';
      SET OutputRoot.SOAP.Body.soapenv:Fault.soapenv:Detail.my:Text = 'my detail string';
      -- Send back a new user defined SOAP 1.1 fault message
      DECLARE soapenv NAMESPACE 'http://schemas.xmlsoap.org/soap/envelope/';
      SET OutputRoot.SOAP.Context.Namespace.(SOAP.NamespaceDecl)xmlns:soapenv = soapenv;
      
      SET OutputRoot.SOAP.Body.soapenv:Fault.faultcode = 'soapenv:Receiver';
      SET OutputRoot.SOAP.Body.soapenv:Fault.faultstring = 'my fault string';
      SET OutputRoot.SOAP.Body.soapenv:Fault.faultactor = 'my fault actor';
      SET OutputRoot.SOAP.Body.soapenv:Fault.detail.Text = 'my detail string';
SOAP ツリー用に生成されるビット・ストリームに影響するのは NamespaceSOAP_Version、および XmlDeclaration のみです。他のフィールドは情報専用です。

SOAP ドメインのグラフィカル・データ・マップを作成するには、マップの入力または出力、およびその両方として、SOAP ドメイン・ツリー用に提供されている IBM® メッセージを使用してください。 提供されているメッセージについて詳しくは、メッセージ・セット: インポート可能な IBM 提供のメッセージを参照してください。 グラフィカル・データ・マッパーのキャスト・フィーチャーまたはサブマップ・フィーチャーを使用して、SOAP 本体の特定の内容を定義します。 マッピング関数について詳しくは、グラフィカル・データ・マッピング・エディターでのタイプの変換を参照してください。

特記事項 | 商標 | ダウンロード | ライブラリー | サポート | フィードバック

Copyright IBM Corporation 1999, 2014Copyright IBM Corporation 1999, 2014.

        
        最終更新:
        
        最終更新: 2015-02-28 17:46:10


概念トピック概念トピック | バージョン 8.0.0.5 | ac64020_