WSDL を使用して指定される標準的な SOAP メッセージ形式
このトピックの対象は、レガシ テクノロジに特定されています。XML Web サービスと XML Web サービス クライアントは以下を使用して作成してください。 Windows Communication Foundation.
業界標準の Web サービス記述言語 (WSDL: Web Services Description Language) は、XML ドキュメントのスキーマを定義し、それによって Web サービスを定義します。WSDL には主要な SOAP 書式設定のオプションが 2 つあります。オプションは両方とも、プライマリ WSDL 名前空間 (https://schemas.xmlsoap.org/wsdl/) ではなく、名前空間 (https://schemas.xmlsoap.org/wsdl/soap/) の XML 要素で定義されます。このセカンダリ名前空間は Web サービスを SOAP プロトコルにコミットします。
SOAP 書式設定のオプション
次の 2 つの書式設定オプションがあります。
Style: SOAP メッセージの Body 要素の子要素または孫要素に指定できます。これは、binding WSDL 要素 (通常) または operation 要素の style 属性として指定します。
Use: 1 つ下位のレベルに表示される Web サービス メソッドのパラメーターまたは戻り値に指定できます。これは、body 要素の use 属性として指定します。
SOAP 仕様の詳細については、W3C の Web サイト (http://www.w3.org/TR/SOAP) を参照してください。W3C の Web サイトでは、WSDL 仕様の詳細についても参照できます。
Style 属性に指定できる値
WSDL では、SOAP 本文全体の書式を設定する style 属性に次の 2 つの値を指定できます。
RPC: パラメーターまたは戻り値は、その親要素が SOAP Body 要素である親要素に自動的に配置されます。パラメーターまたは戻り値は、名前空間の修飾なしで表示されます。このスキームは、SOAP 1.1 仕様のセクション 7 に記述されています。
style="rpc"
と指定します。SOAP 要求では、SOAP Body の下の要素は、WSDL operation 要素に基づいて名前が付けられ、Web サービス メソッドに対応します。この要素内にある各要素はパラメーターを表し、それぞれのパラメーターに基づいて名前が付けられます。
SOAP 応答の SOAP Body の下の要素の名前は、操作名に Response が追加されたものになります。戻り値を表す下位要素の名前では、操作名にサフィクスとして Return が付けられます。
Document: SOAP Body 要素の内容は、XML スキーマ定義で定義された XML 要素として WSDL で完全に指定されます。XML スキーマは、WSDL ドキュメントで指定されるか、このドキュメントにインポートされます。WSDL は、パラメーターと戻り値を認識せず、XML ドキュメントのみを処理します。開発者は (可能であれば Web サービス インフラストラクチャで)、パラメーターと戻り値を XML スキーマの要素と型に変換する方法を管理します。
style="document"
と指定します。最上位の XML 要素はメッセージ部分として指定されます。メッセージ部分は message 要素で定義され、XSD 要素宣言をポイントする part 要素です。WSDL 自体は複数の要素を禁止していませんが、通常、部分は 1 つしかないため、SOAP Body の内容は XML ドキュメントと一致します。
WSDL では、パラメーターと戻り値の書式を設定する use 属性に次の 2 つの値を指定できます。
Encoded: SOAP 1.1 仕様のセクション 5 に記載されている方法でデータが書式設定されます。SOAP エンコーディングでは、XML スキーマのサブセットを使い、XML ドキュメントとそれが表すデータをバインドします。また、ドキュメントで複数回表示される要素では参照も使用されます。
use="encoded"
と指定します。Literal: WSDL ドキュメントで指定されるか、WSDL ドキュメントにインポートされた XML スキーマ定義に従って、リテラルとしてデータが書式設定されます。
use="literal"
と指定します。