SOAP メッセージの構造

SOAP メッセージは、以下で構成される XML 文書としてエンコードされます。<Envelope>エレメント。これにはオプションが含まれます。<Header>エレメント、および必須<Body>element. <Fault>エレメントに含まれる<Body>エラーを報告するために使用されます。

SOAP エンベロープ
<Envelope>すべての SOAP メッセージのルート・エレメントであり、2 つの子エレメント (オプション) が含まれています。<Header>エレメント、および必須<Body>element.
SOAP ヘッダー
<Header>SOAP エンベロープのオプションのサブエレメントであり、メッセージ・パスに沿って SOAP ノードによって処理されるアプリケーション関連情報を渡すために使用されます。 SOAP ヘッダーを参照してください。
SOAP 本体
<Body>SOAP エンベロープの必須サブエレメントです。これには、メッセージの最終受信者向けの情報が含まれています。 SOAP 本体を参照してください。
SOAP 障害
<Fault>SOAP 本体のサブエレメントであり、エラーの報告に使用されます。 SOAP 障害を参照してください。

XML エレメント<Header>および<Body>SOAP 仕様ではそれらの構造にいくつかの制約がありますが、それらを使用するアプリケーションによって定義されます。 以下の図は、SOAP メッセージの構造を示しています。

この図は、SOAP ヘッダーと SOAP 本体の両方のコンテナーとして SOAP エンベロープを示しています。

以下のコードは、ヘッダー・ブロックを含む SOAP メッセージの例です。<m:reservation>および<n:passenger>(要素を含む) および本体 (要素を含む)<p:itinterary>エレメント)。

<?xml version='1.0' Encoding='UTF-8' ?>
<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"> 
 <env:Header>
  <m:reservation xmlns:m="http://travelcompany.example.org/reservation" 
		env:role="http://www.w3.org/2003/05/soap-envelope/role/next">
   <m:reference>uuid:093a2da1-q345-739r-ba5d-pqff98fe8j7d</m:reference>
   <m:dateAndTime>2007-11-29T13:20:00.000-05:00</m:dateAndTime>
  </m:reservation>
  <n:passenger xmlns:n="http://mycompany.example.com/employees" 
		env:role="http://www.w3.org/2003/05/soap-envelope/role/next">
   <n:name>Fred Bloggs</n:name>
  </n:passenger>
 </env:Header>
 <env:Body>
  <p:itinerary xmlns:p="http://travelcompany.example.org/reservation/travel">
   <p:departure>
     <p:departing>New York</p:departing>
     <p:arriving>Los Angeles</p:arriving>
     <p:departureDate>2007-12-14</p:departureDate>
     <p:departureTime>late afternoon</p:departureTime>
     <p:seatPreference>aisle</p:seatPreference>
   </p:departure>
   <p:return>
     <p:departing>Los Angeles</p:departing>
     <p:arriving>New York</p:arriving>
     <p:departureDate>2007-12-20</p:departureDate>
     <p:departureTime>mid-morning</p:departureTime>
     <p:seatPreference></p:seatPreference>
   </p:return>
  </p:itinerary>
 </env:Body>
</env:Envelope>