制約事項

以下のセクションでは、データ・ハンドラーの制約事項について説明します。

SOAP の Style および Use に関するガイドライン

SOAP メッセージは、Web サービスによって定義された Style および Use に基づいて作成されます。SOAP データ・ハンドラーが提供するサポートのレベルは、表 47 に示すとおりです。

表 47. Style および Use のガイドライン
Style Use パーツを定義するもの データ・ハンドラーのサポート
document literal element 完全
document literal type 限定 (下記を参照)
document encoded element なし
document encoded type 限定 (下記を参照)
rpc literal element なし
rpc literal type 完全
rpc encoded element なし
rpc encoded type 完全

パーツおよびパーツ要素の順序

SOAP データ・ハンドラーが SOAP メッセージをビジネス・オブジェクトに変換する際に、SOAP メッセージが document/literal/type または document/encoded/type のフォーマットに従う場合、メッセージのパーツは、WSDL で記述されたとおりの順序になっていなければなりません。例えば、次の WSDL を検討してください。

<operation name="GetQuote"
      style="document" ...>
 <input>
    <soap:body parts="Part1 Part2 Part3 Part4" use="literal">
 </input>
 </operation>
  
 <definitions
  xmlns:stns="(SchemaTNS)"
 xmlns:wtns="(WsdlTNS)"
 targetNamespace="(WsdlTNS)">
  
 <schema targetNamespace="(SchemaTNS)"
                  elementFormDefault="qualified">
 <element name="SimpleElement" type="xsd:int"/>
 <element name="CompositElement" type="stns:CompositeType"/>
 <complexType name="CompositeType">
 <all>
       <element name='elem_a' type="xsd:int"/>
       <element name='elem_b' type="xsd:string"/>
 </all>
 </complexType>
 </schema>
  
 <message...>
 <part name='Part1' type="stns:CompositeType"/>
 <part name='Part2' type="xsd:int"/>
 <part name='Part3' element="stns:SimpleElement"/>
 <part name='Part4' element="stns:CompositeElement"/>
 </message>
 Ö
 </definitions>
 

SOAP メッセージは、パーツによって定義された順序に従うわなければなりません。下の SOAP 例では、Part1 要素が Part2、Part3、および Part4 要素に先行しています。正しいビジネス・オブジェクト解決を行うためには、この順序を維持しなければなりません。

<soapenv:body... xmlns:mns="(MessageNS)"
    xmlns:stns="(SchemaTNS)">
    <stns:elem_a>123</stns:elem_a>
    <stns:elem_b>hello</stns:elem_b>
    <soapenc:int>123</soapenc:int>123</soapenc:int>123</soapenc:int>
    <stns:SimpleElement>123</stns:SimpleElement>
    <stns:CompositeElement>
       <stns:elem_a>123</stns:elem_a>
       <stns:elem_b>hello</stns:elem_b>
    </stns:CompositeElement>
 </soapenv:body>
 

SOAP メッセージが document/literal/type フォーマットまたは document/encoded/type フォーマットに従う場合、パーツ要素も定義された順序に従う必要があります。上の例の Part1 で、elem_a タグは elem_b タグの前になければなりません。この制約は、データ・ハンドラーのビジネス・オブジェクト解決プロセスで指示されています。document スタイルの場合のデフォルトのビジネス・オブジェクト解決には、最初の要素の本文の名前およびネーム・スペースが使用されるため、これらを、特定の要求、応答、または障害に関するすべての SOAP メッセージで同じ要素になるようにして、要求、応答、または障害のいずれの場合にも同じビジネス・オブジェクトに解決されるようにする必要があります。

注:
SOAP メッセージが document/literal/type フォーマットまたは document/encoded/type フォーマットに従う場合、要素をオプショナルにしてはなりません。

XML の制約事項

以下の XML 構造、機能、および表記はサポートされません。

Copyright IBM Corp. 2004