Soap-quick-guide

提供:Dev Guides
移動先:案内検索

SOAPとは何ですか?

SOAPは、Simple Object Access Protocolの頭字語です。 これは、コンピューター間で情報を交換するためのXMLベースのメッセージングプロトコルです。 SOAPは、XML仕様のアプリケーションです。

注意点

  • SOAPは、インターネット経由で通信するために設計された通信プロトコルです。
  • SOAPはHTTPをXMLメッセージング用に拡張できます。
  • SOAPは、Webサービスのデータ転送を提供します。
  • SOAPは完全なドキュメントを交換するか、リモートプロシージャを呼び出すことができます。
  • SOAPはメッセージのブロードキャストに使用できます。
  • SOAPはプラットフォームおよび言語に依存しません。
  • SOAPは、送信する情報と送信方法を定義するXMLの方法です。
  • SOAPにより、クライアントアプリケーションはリモートサービスに簡単に接続し、リモートメソッドを呼び出すことができます。

SOAPはさまざまなメッセージングシステムで使用でき、さまざまな転送プロトコルを介して配信できますが、SOAPの最初の焦点はHTTPを介して転送されるリモートプロシージャコールです。

CORBA、DCOM、Java RMIなどの他のフレームワークは、SOAPと同様の機能を提供しますが、SOAPメッセージは完全にXMLで記述されているため、プラットフォームおよび言語に依存しません。

SOAP-メッセージ構造

SOAPメッセージは、次の要素を含む通常のXML文書です-

  • エンベロープ-メッセージの開始と終了を定義します。 これは必須要素です。
  • ヘッダー-中間点または最終エンドポイントで、メッセージの処理に使用されるメッセージのオプション属性が含まれます。 これはオプションの要素です。
  • Body -送信されるメッセージを構成するXMLデータが含まれます。 これは必須要素です。
  • Fault -メッセージの処理中に発生したエラーに関する情報を提供するオプションのFault要素。

これらのすべての要素は、SOAPエンベロープのデフォルトネームスペースで宣言されます-http://www.w3.org/2001/12/soap-envelopeおよびSOAPエンコーディングとデータ型のデフォルトネームスペースは-http://www.w3です。 .org/2001/12/soap-encoding

-これらの仕様はすべて変更される可能性があります。 したがって、W3 Webサイトで入手可能な最新の仕様で更新してください。

SOAPメッセージ構造

次のブロックは、SOAPメッセージの一般的な構造を示しています-

<?xml version = "1.0"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV = "http://www.w3.org/2001/12/soap-envelope"
   SOAP-ENV:encodingStyle = "http://www.w3.org/2001/12/soap-encoding">

   <SOAP-ENV:Header>
      ...
      ...
   </SOAP-ENV:Header>
   <SOAP-ENV:Body>
      ...
      ...
      <SOAP-ENV:Fault>
         ...
         ...
      </SOAP-ENV:Fault>
      ...
   </SOAP-ENV:Body>
</SOAP_ENV:Envelope>

SOAP-エンベロープ

SOAPエンベロープはメッセージの開始と終了を示すため、メッセージ全体が受信されたことを受信者が知ることができます。 SOAPエンベロープは、メッセージの受信が完了し、メッセージを処理する準備ができたことを知る問題を解決します。 したがって、SOAPエンベロープは基本的にパッケージ化メカニズムです。

注意点

  • すべてのSOAPメッセージにはルートエンベロープ要素があります。
  • エンベロープは、SOAPメッセージの必須部分です。
  • すべてのEnvelope要素には、Body要素が1つだけ含まれている必要があります。
  • EnvelopeにHeader要素が含まれる場合、1つのみを含む必要があり、Bodyの前のEnvelopeの最初の子として表示される必要があります。
  • SOAPバージョンが変更されると、エンベロープが変更されます。
  • SOAPエンベロープは、_ENV_名前空間プレフィックスとEnvelope要素を使用して指定されます。
  • オプションのSOAPエンコーディングも、名前空間名とオプションの_encodingStyle_要素を使用して指定されます。これは、SOAP以外のエンコーディングスタイルを指すこともできます。
  • v1.1準拠のSOAPプロセッサは、v1.2エンベロープネームスペースを含むメッセージを受信するとエラーを生成します。
  • v1.2準拠のSOAPプロセッサは、v1.2エンベロープネームスペースを含まないメッセージを受信すると、_VersionMismatch_フォールトを生成します。

v1.2準拠のSOAPメッセージ

以下に、v1.2準拠のSOAPメッセージの例を示します。

<?xml version = "1.0"?>
<SOAP-ENV:Envelope
   xmlns:SOAP-ENV = "http://www.w3.org/2001/12/soap-envelope"
   SOAP-ENV:encodingStyle = " http://www.w3.org/2001/12/soap-encoding">
   ...
   Message information goes here
   ...
</SOAP-ENV:Envelope>

HTTP POSTを使用したSOAP

次の例は、HTTP POST操作内でSOAPメッセージを使用して、サーバーにメッセージを送信する方法を示しています。 エンベロープスキーマ定義およびエンコーディングルールのスキーマ定義のネームスペースを示しています。 HTTPヘッダーの_OrderEntry_参照は、finddevguides.com Webサイトで呼び出されるプログラムの名前です。

POST/OrderEntry HTTP/1.1
Host: www.finddevguides.com
Content-Type: application/soap;  charset="utf-8"
Content-Length: nnnn

<?xml version = "1.0"?>
<SOAP-ENV:Envelope
   xmlns:SOAP-ENV = "http://www.w3.org/2001/12/soap-envelope"
   SOAP-ENV:encodingStyle = " http://www.w3.org/2001/12/soap-encoding">
   ...
   Message information goes here
   ...
</SOAP-ENV:Envelope>

-HTTPバインディングはサービスの場所を指定します。

SOAP-ヘッダー

オプションのHeader要素は、追加のアプリケーションレベルの要件を指定するための柔軟なフレームワークを提供します。 たとえば、Header要素を使用して、パスワードで保護されたサービスのデジタル署名を指定できます。 同様に、従量課金SOAPサービスのアカウント番号を指定するために使用できます。

注意点

  • SOAPメッセージのオプション部分です。
  • ヘッダー要素は複数回使用できます。
  • ヘッダーは、新しい機能を追加することを目的としています。
  • SOAPヘッダーには、ネームスペースで定義されたヘッダーエントリが含まれます。
  • ヘッダーは、SOAPエンベロープの最初の直接の子要素としてエンコードされます。
  • 複数のヘッダーが定義されている場合、SOAPヘッダーの直接の子要素はすべて、SOAPヘッダーブロックとして解釈されます。

SOAPヘッダー属性

SOAPヘッダーは、次の2つの属性を持つことができます-

アクター属性

SOAPプロトコルは、メッセージパスをSOAPサービスノードのリストとして定義します。 これらの中間ノードはそれぞれ、何らかの処理を実行してから、チェーン内の次のノードにメッセージを転送できます。 Actor属性を設定することにより、クライアントはSOAPヘッダーの受信者を指定できます。

MustUnderstand属性

ヘッダー要素がオプションか必須かを示します。 trueに設定されている場合、受信者は定義されたセマンティクスに従ってHeader属性を理解して処理するか、エラーを返す必要があります。

次の例は、SOAPメッセージでヘッダーを使用する方法を示しています。

<?xml version = "1.0"?>
<SOAP-ENV:Envelope
   xmlns:SOAP-ENV = " http://www.w3.org/2001/12/soap-envelope"
   SOAP-ENV:encodingStyle = " http://www.w3.org/2001/12/soap-encoding">

   <SOAP-ENV:Header>
      <t:Transaction
         xmlns:t = "http://www.finddevguides.com/transaction/"
         SOAP-ENV:mustUnderstand = "true">5
      </t:Transaction>
   </SOAP-ENV:Header>
   ...
   ...
</SOAP-ENV:Envelope>

SOAP-ボディ

SOAP本体は、SOAPメッセージで交換されるアプリケーション定義のXMLデータを含む必須要素です。 ボディはエンベロープ内に含まれている必要があり、メッセージに定義されている可能性のあるヘッダーに従う必要があります。

本文はエンベロープの子要素として定義され、本文のセマンティクスは関連するSOAPスキーマで定義されます。

本文には、メッセージの最終的な受信者向けの必須情報が含まれています。 たとえば-

<?xml version = "1.0"?>
<SOAP-ENV:Envelope>
   ........
   <SOAP-ENV:Body>
      <m:GetQuotation xmlns:m = "http://www.tp.com/Quotation">
         <m:Item>Computers</m:Item>
      </m:GetQuotation>
   </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

上記の例では、コンピューターセットの見積もりを要求しています。 上記のm:GetQuotationおよびItem要素は、アプリケーション固有の要素であることに注意してください。 それらはSOAP標準の一部ではありません。

ここに上記のクエリへの応答があります-

<?xml version = "1.0"?>
<SOAP-ENV:Envelope>
   ........
   <SOAP-ENV:Body>
      <m:GetQuotationResponse xmlns:m = "http://www.tp.com/Quotation">
         <m:Quotation>This is Qutation</m:Quotation>
      </m:GetQuotationResponse>
   </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

通常、アプリケーションは、リクエストおよびレスポンス要素に関連付けられたセマンティクスを含むスキーマも定義します。

_Quotation_サービスは、アプリケーションサーバーで実行されているEJBを使用して実装できます。その場合、SOAPプロセッサは、_GetQuotationResponse_サービスのEJB実装への、およびその実装からのパラメーターとしての本体情報のマッピングを担当します。 SOAPプロセッサは、本体情報を.NETオブジェクト、CORBAオブジェクト、COBOLプログラムなどにマッピングすることもできます。

SOAP-障害

処理中にエラーが発生した場合、SOAPメッセージへの応答はメッセージ本文のSOAPエラー要素であり、エラーはSOAPメッセージの送信者に返されます。

SOAPエラーメカニズムは、エラーを生成したSOAPプロセッサの定義済みコード、説明、アドレスなど、エラーに関する特定の情報を返します。

注意点

  • SOAPメッセージには、1つの障害ブロックのみを含めることができます。
  • 障害は、SOAPメッセージのオプション部分です。
  • HTTPバインディングの場合、成功した応答はステータスコードの200〜299の範囲にリンクされます。 *SOAP Faultは、ステータスコードの500〜599の範囲にリンクされています。

障害のサブ要素

SOAP障害には、次のサブ要素があります-

Sr.No Sub-element & Description
1
  • <faultCode>*

これは、エラーのクラスを示すために使用されるテキストコードです。 事前定義された障害コードのリストについては、次の表を参照してください。

2

<faultString>

エラーを説明するテキストメッセージです。

3

<faultActor>

誰が障害を引き起こしたかを示すテキスト文字列です。 SOAPメッセージがSOAPメッセージパス内のいくつかのノードを通過し、クライアントがエラーの原因となったノードを知る必要がある場合に役立ちます。 最終的な宛先として機能しないノードには、_faultActor_要素を含める必要があります。

4

<detail>

これは、アプリケーション固有のエラーメッセージを伝えるために使用される要素です。 詳細要素には、詳細エントリと呼ばれる子要素を含めることができます。

SOAP障害コード

以下に定義されているfaultCode値は、_faultcode_要素で障害の説明中に使用する必要があります。

Sr.No Error & Description
1

SOAP-ENV:VersionMismatch

SOAP Envelope要素の無効なネームスペースが見つかりました。

2

SOAP-ENV:MustUnderstand

mustUnderstand属性が「1」に設定された、Header要素の直接の子要素が理解されませんでした。

3

SOAP-ENV:Client

メッセージの形式が正しくないか、誤った情報が含まれていました。

4

SOAP-ENV:Server

サーバーに問題があったため、メッセージを続行できませんでした。

SOAP障害の例

次のコードはサンプルフォールトです。 クライアントは_ValidateCreditCard_という名前のメソッドを要求しましたが、サービスはそのようなメソッドをサポートしていません。 これはクライアント要求エラーを表し、サーバーは次のSOAP応答を返します-

<?xml version = '1.0' encoding = 'UTF-8'?>
<SOAP-ENV:Envelope
   xmlns:SOAP-ENV = "http://schemas.xmlsoap.org/soap/envelope/"
   xmlns:xsi = "http://www.w3.org/1999/XMLSchema-instance"
   xmlns:xsd = "http://www.w3.org/1999/XMLSchema">

   <SOAP-ENV:Body>
      <SOAP-ENV:Fault>
         <faultcode xsi:type = "xsd:string">SOAP-ENV:Client</faultcode>
         <faultstring xsi:type = "xsd:string">
            Failed to locate method (ValidateCreditCard) in class (examplesCreditCard) at
              /usr/local/ActivePerl-5.6/lib/site_perl/5.6.0/SOAP/Lite.pm line 1555.
         </faultstring>
      </SOAP-ENV:Fault>
   </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

SOAP-エンコード

SOAPには、データ型をエンコードするための一連のルールが組み込まれています。 SOAPメッセージで、整数、浮動小数点数、倍精度数、配列などの特定のデータ型を示すことができます。

  • SOAPデータ型は、スカラー型と複合型の2つの広範なカテゴリに分類されます。
  • スカラー型には、姓、価格、製品の説明などの値が1つだけ含まれています。
  • 複合タイプには、発注書や株価情報のリストなど、複数の値が含まれます。
  • 複合型は、さらに配列と構造体に細分化されます。
  • SOAPメッセージのエンコードスタイルは、_SOAP-ENV:encodingStyle_属性を介して設定されます。
  • SOAP 1.1エンコードを使用するには、値http://schemas.xmlsoap.org/soap/encoding/を使用します
  • SOAP 1.2エンコードを使用するには、値http://www.w3.org/2001/12/soap-encodingを使用します
  • 最新のSOAP仕様では、XMLスキーマで定義されているすべての組み込み型が採用されています。 それでも、SOAPは、配列や参照など、XMLスキーマで標準化されていない構造を定義する独自の規則を維持しています。

スカラー型

スカラー型の場合、SOAPはXMLスキーマ仕様で指定されているすべての組み込み単純型を採用します。 これには、ストリング、フロート、ダブル、および整数が含まれます。

次の表に、XML Schema Part 0-Primer [[1]]

XMLスキーマに組み込まれた単純型

シンプルタイプ

ひも

これが電動であることを確認してください。

ブール値

true、false、1、0。

浮く

-INF、-1E4、-0、0、12.78E-2、12、INF、NaN。

ダブル

-INF、-1E4、-0、0、12.78E-2、12、INF、NaN。

小数

-1.23、0、123.4、1000.00。

バイナリ

100010

整数

-126789、-1、0、1、126789。

nonPositiveInteger

-126789、-1、0。

negativeInteger

-126789、-1。

long

-1、12678967543233

int

-1、126789675

ショート

-1、12678

byte

-1、126

nonNegativeInteger

0、1、126789

署名なし

0、12678967543233

unsignedInt

0、1267896754

unsignedShort

0、12678

unsignedByte

0、126

正の整数

1、126789。

date

1999-05-31、-05。

time

13:20:00.000、13:20:00.000-05:00

たとえば、これはdoubleデータ型のSOAP応答です-

<?xml version = '1.0' encoding = 'UTF-8'?>
<SOAP-ENV:Envelope
   xmlns:SOAP-ENV = "http://www.w3.org/2001/12/soap-envelope"
   xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
   xmlns:xsd = "http://www.w3.org/2001/XMLSchema">

   <SOAP-ENV:Body>
      <ns1:getPriceResponse
         xmlns:ns1 = "urn:examples:priceservice"
         SOAP-ENV:encodingStyle = "http://www.w3.org/2001/12/soap-encoding">
         <return xsi:type = "xsd:double">54.99</return>
      </ns1:getPriceResponse>
   </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

複合タイプ

SOAP配列には非常に特定のルールセットがあり、要素タイプと配列サイズの両方を指定する必要があります。 SOAPは多次元配列もサポートしていますが、すべてのSOAP実装が多次元機能をサポートしているわけではありません。

配列を作成するには、配列の_xsi:type_として指定する必要があります。 配列には、_arrayType_属性も含める必要があります。 この属性は、含まれる要素のデータ型と配列の次元を指定するために必要です。

たとえば、次の属性は、10のdouble値の配列を指定します-

arrayType = "xsd:double[10]"

対照的に、次の属性は文字列の二次元配列を指定します-

arrayType = "xsd:string[5,5]"

以下は、double値の配列を持つサンプルSOAP応答です-

<?xml version = '1.0' encoding = 'UTF-8'?>
<SOAP-ENV:Envelope
   xmlns:SOAP-ENV = "http://www.w3.org/2001/12/soap-envelope"
   xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
   xmlns:xsd = "http://www.w3.org/2001/XMLSchema">

   <SOAP-ENV:Body>
      <ns1:getPriceListResponse
         xmlns:ns1 = "urn:examples:pricelistservice"
         SOAP-ENV:encodingStyle = "http://www.w3.org/2001/12/soap-encoding">

         <return xmlns:ns2 = "http://www.w3.org/2001/09/soap-encoding"
            xsi:type = "ns2:Array" ns2:arrayType = "xsd:double[2]">
            <item xsi:type = "xsd:double">54.99</item>
            <item xsi:type = "xsd:double">19.99</item>
         </return>
      </ns1:getPriceListResponse>
   </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

構造体には複数の値が含まれますが、各要素は一意のアクセサー要素で指定されます。 たとえば、製品カタログ内のアイテムを考えます。 この場合、構造体には製品SKU、製品名、説明、および価格が含まれる場合があります。 以下は、そのような構造体がSOAPメッセージでどのように表されるかです-

<?xml version = '1.0' encoding = 'UTF-8'?>
<SOAP-ENV:Envelope
   xmlns:SOAP-ENV = "http://www.w3.org/2001/12/soap-envelope"
   xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
   xmlns:xsd = "http://www.w3.org/2001/XMLSchema">

   <SOAP-ENV:Body>
      <ns1:getProductResponse
         xmlns:ns1 = "urn:examples:productservice"
         SOAP-ENV:encodingStyle = "http://www.w3.org/2001/12/soap-encoding">

         <return xmlns:ns2 = "urn:examples" xsi:type = "ns2:product">
            <name xsi:type = "xsd:string">Red Hat Linux</name>
            <price xsi:type = "xsd:double">54.99</price>
            <description xsi:type = "xsd:string">
               Red Hat Linux Operating System
            </description>
            <SKU xsi:type = "xsd:string">A358185</SKU>
         </return>
      </ns1:getProductResponse>
   </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

-SOAPコードを記述するときは、適切なインデントに注意してください。 構造体の各要素は、一意のアクセサー名で指定されます。 たとえば、上記のメッセージには、名前、価格、説明、およびSKUという4つのアクセサー要素が含まれています。 各要素は独自のデータ型を持つことができます。 たとえば、nameは文字列として指定され、priceはdoubleとして指定されます。

SOAP-トランスポート

SOAPはどのトランスポートプロトコルにも関連付けられていません。 SOAPは、SMTP、FTP、IBMのMQSeries、またはMicrosoft Message Queuing(MSMQ)を介して転送できます。

SOAP仕様には、HTTPに関する詳細のみが含まれています。 HTTPは依然として最も人気のあるSOAPトランスポートプロトコルです。

HTTP経由のSOAP

かなり論理的に、SOAPリクエストはHTTPリクエストを介して送信され、SOAPレスポンスはHTTPレスポンスのコンテンツ内で返されます。 SOAPリクエストはHTTP GETを介して送信できますが、仕様にはHTTP POSTのみの詳細が含まれます。

また、コンテンツタイプをtext/xmlに設定するには、HTTPリクエストとレスポンスの両方が必要です。

SOAP仕様では、クライアントは_SOAPActionヘッダーを提供する必要がありますが、SOAPActionヘッダーの実際の値はSOAPサーバーの実装に依存しています。

たとえば、XMethodsがホストするAltaVista BabelFish Translationサービスにアクセスするには、SOAPActionヘッダーとして次を指定する必要があります。

urn:xmethodsBabelFish#BabelFish

サーバーが完全なSOAPActionヘッダーを必要としない場合でも、クライアントは空の文字列( "")またはnull値を指定する必要があります。 たとえば-

SOAPAction: ""
SOAPAction:

これは、HTTP経由でXMethods Babelfish翻訳サービスに送信されるサンプルリクエストです-

POST/perl/soaplite.cgi HTTP/1.0
Host: services.xmethods.com
Content-Type: text/xml; charset = utf-8
Content-Length: 538
SOAPAction: "urn:xmethodsBabelFish#BabelFish"

<?xml version = '1.0' encoding = 'UTF-8'?>
<SOAP-ENV:Envelope
   xmlns:SOAP-ENV = "http://schemas.xmlsoap.org/soap/envelope/"
   xmlns:xsi = "http://www.w3.org/1999/XMLSchema-instance"
   xmlns:xsd = "http://www.w3.org/1999/XMLSchema">

   <SOAP-ENV:Body>
      <ns1:BabelFish
         xmlns:ns1 = "urn:xmethodsBabelFish"
         SOAP-ENV:encodingStyle = "http://schemas.xmlsoap.org/soap/encoding/">
         <translationmode xsi:type = "xsd:string">en_fr</translationmode>
         <sourcedata xsi:type = "xsd:string">Hello, world!</sourcedata>
      </ns1:BabelFish>
   </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

コンテンツタイプとSOAPActionヘッダーに注意してください。 BabelFishメソッドには2つの文字列パラメーターが必要です。 翻訳モードen_frは、英語からフランス語に翻訳します。

XMethodsからの応答は次のとおりです-

HTTP/1.1 200 OK
Date: Sat, 09 Jun 2001 15:01:55 GMT
Server: Apache/1.3.14 (Unix) tomcat/1.0 PHP/4.0.1pl2
SOAPServer: SOAP::Lite/Perl/0.50
Cache-Control: s-maxage = 60, proxy-revalidate
Content-Length: 539
Content-Type: text/xml

<?xml version = "1.0" encoding = "UTF-8"?>
<SOAP-ENV:Envelope
   xmlns:SOAP-ENC = "http://schemas.xmlsoap.org/soap/encoding/"
   SOAP-ENV:encodingStyle = "http://schemas.xmlsoap.org/soap/encoding/"
   xmlns:xsi = "http://www.w3.org/1999/XMLSchema-instance"
   xmlns:SOAP-ENV = "http://schemas.xmlsoap.org/soap/envelope/"
   xmlns:xsd = "http://www.w3.org/1999/XMLSchema">

   <SOAP-ENV:Body>
      <namesp1:BabelFishResponse xmlns:namesp1 = "urn:xmethodsBabelFish">
         <return xsi:type = "xsd:string">Bonjour, monde!</return>
      </namesp1:BabelFishResponse>
   </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

HTTP経由で配信されるSOAP応答は、同じHTTPステータスコードに従う必要があります。 たとえば、200 OKのステータスコードは、成功した応答を示します。 500内部サーバーエラーのステータスコードは、サーバーエラーがあり、SOAP応答にFault要素が含まれていることを示します。

SOAP-例

以下の例では、_GetQuotation_リクエストがHTTP経由でSOAPサーバーに送信されます。 要求には_QuotationName_パラメーターがあり、応答でQuotationが返されます。

関数の名前空間は、http://www.xyz.org/quotationアドレスで定義されています。

ここにSOAPリクエストがあります-

POST/Quotation HTTP/1.0
Host: www.xyz.org
Content-Type: text/xml; charset = utf-8
Content-Length: nnn

<?xml version = "1.0"?>
<SOAP-ENV:Envelope
   xmlns:SOAP-ENV = "http://www.w3.org/2001/12/soap-envelope"
   SOAP-ENV:encodingStyle = "http://www.w3.org/2001/12/soap-encoding">

   <SOAP-ENV:Body xmlns:m = "http://www.xyz.org/quotations">
      <m:GetQuotation>
         <m:QuotationsName>MiscroSoft</m:QuotationsName>
      </m:GetQuotation>
   </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

対応するSOAP応答は次のようになります-

HTTP/1.0 200 OK
Content-Type: text/xml; charset = utf-8
Content-Length: nnn

<?xml version = "1.0"?>
<SOAP-ENV:Envelope
   xmlns:SOAP-ENV = "http://www.w3.org/2001/12/soap-envelope"
   SOAP-ENV:encodingStyle = "http://www.w3.org/2001/12/soap-encoding">

   <SOAP-ENV:Body xmlns:m = "http://www.xyz.org/quotation">
      <m:GetQuotationResponse>
         <m:Quotation>Here is the quotation</m:Quotation>
      </m:GetQuotationResponse>
   </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

SOAP-標準

SOAP 1.1は、当初2000年5月にW3Cに提出されました。 公式の提出者には、Microsoft、IBM、Aribaなどの大企業、およびUserLand SoftwareやDevelopMentorなどの小規模企業が含まれます。

2001年7月、XMLプロトコルワーキンググループは、SOAP 1.2の「ワーキングドラフト」をリリースしました。 W3C内では、このドキュメントは公式に進行中の作業であり、最終的にはドキュメントが何度も更新される可能性が高いことを意味します。

SOAPバージョン1.1は、http://www.w3.org/TR/SOAP/からオンラインで入手できます。

SOAPバージョン1.2のワーキングドラフトは、http://www.w3.org/TR/soap12/で入手できます。

W3Cは、「SOAP Messages with Attachments」の送信もホストすることに注意してください。これは、コアSOAP仕様とは異なります。 この仕様により、SOAPメッセージに画像や音声ファイルなどのバイナリ添付ファイルを含めることができます。 詳細については、http://www.w3.org/TR/SOAP-attachmentsのW3C Noteを参照してください。

SOAP-便利なリソース

次のリソースには、SOAPに関する追加情報が含まれています。 このトピックに関する詳細な知識を得るには、それらを使用してください。

SOAPの便利なリンク

  • Apache SOAP-SOAPプロトコルのオープンソースJava実装。 IBM SOAP4J実装に基づいています。
  • Microsoft SOAP ToolKit 2.0-C#、C ++、Visual Basic、またはその他のCOM準拠言語のSOAPプロトコルのCOM実装。
  • SOAP::Lite for Perl-WSDLとUDDIのサポートを含む、Paul Kulchenkoによって書かれたSOAPプロトコルのPerl実装。
  • http://www.webmethods.com [WebメソッドのGLUE]-WSDLおよびUDDIのサポートを含むSOAPプロトコルのJava実装。

SOAPに関する便利な本

このページにサイトを登録するには、 contact @ finddevguides.com にメールを送信してください。