添付ファイル付き SOAP メッセージ: WSDL の例
このタスクは、添付ファイルを使用した WSDL ファイルの例と説明を確認する場合に使用します。
例
以下の WSDL 例で、attch という 1 つの添付ファイルを使用した簡単な操作を示します。
<binding name="MyBinding" type="tns:abc" >
<soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="MyOperation">
<soap:operation soapAction=""/>
<input>
<mime:multipartRelated>
<mime:part>
<soap:body parts="part1 part2 ..." use="encoded" namespace="http://mynamespace"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding"/>
</mime:part>
<mime:part>
<mime:content part="attch" type="text/html"/>
</mime:part>
</mime:multipartRelated>
</input>
</operation>
</binding>
このタイプの WSDL 拡張については、以下のとおりです。
- 操作 (この例では MyOperation) の入力メッセージには、 part 属性 (この例では attch) が必要です。MyOperation には、 添付ファイル以外の入力部分を含めることもできます。
- バインディング入力には、 <soap:body> タグまたは <mime:multipartRelated> タグのいずれかがなくてはなりません (両方は必要ありません)。
- MIME メッセージの場合、 <soap:body> タグは <mime:part> タグ内にあります。 バインディング入力には、<soap:body> タグを含む <mime:part> タグが 1 つだけ必要で、このタグには <mime:content> タグが含まれていてはなりません。 これは、<soap:body> タグではコンテンツ・タイプ text/xml が前提となっているためです。
- MIME メッセージには複数の添付ファイルを含めることができ、 各添付ファイルは <mime:part> タグで記述されます。
- <soap:body> タグを含まない <mime:part> タグは、 それぞれ、添付ファイル自体を記述する <mime:content> タグを 含みます。 <mime:content> タグ内の type 属性は、サービス統合バスでは検査も使用もされません。 ここで、サービス統合バスを使用するアプリケーションに、添付ファイルに 含まれるものを提示します。 単一の <mime:part> タグ内に複数の <mime:content> タグがある場合、バックエンド・サービスが、その <mime:part> タグ内の <mime:content> タグのいずれかで指定された型の単一添付ファイルがあるものと予期することを意味します。
- <soap:body> タグ内の parts="..." 属性は、 メッセージの SOAP パーツ名すべてを含むことを前提としていますが、添付ファイル・パーツ名は含みません。 添付ファイル・パーツのみが存在する場合は、parts="" (空ストリング) を指定します。 parts 属性をすべて省略すると、サービス統合バスは、 すべてのパーツに添付ファイルが含まれていると想定します。これにより、添付 ファイルが 2 回表示されます。
WSDL で、添付ファイルのスキーマを (例えば binary[] として) 定義している可能性があります。 サービス統合テクノロジーはこのマッピングを暗黙的に無視し、 添付ファイルをデータ・ハンドラーとして扱います。
WSDL バインディングでは、参照されない添付ファイルについては記述する必要はありません。