- WSDLは、Webサービス記述言語の略
- WSDLは、Webサービスを記述するために使用され
- WSDLは、XMLで記述されています
- WSDLは、2007年6月26日からW3C勧告です
WSDLドキュメント
WSDL文書は、Webサービスを記述します。 これは、これらの主要な要素を使用して、サービスの場所、およびサービスのメソッドを指定します。
素子 | 説明 |
---|---|
<types> | 定義(XML Schema) Webサービスによって使用されるデータ型を |
<message> | 各動作のためのデータ要素を定義します |
<portType> | 実行され、メッセージが関与することができる操作について説明します。 |
<binding> | 各ポートタイプのためのプロトコルとデータ形式を定義します |
WSDL文書の主な構造は次のようになります。
<definitions>
<types>
data type definitions........
</types>
<message>
definition of the data being communicated....
</message>
<portType>
set of operations......
</portType>
<binding>
protocol and data format specification....
</binding>
</definitions>
WSDLの例
これは、WSDL文書の簡略化された割合です。
<message name="getTermRequest">
<part name="term" type="xs:string"/>
</message>
<message name="getTermResponse">
<part name="value" type="xs:string"/>
</message>
<portType name="glossaryTerms">
<operation name="getTerm">
<input message="getTermRequest"/>
<output message="getTermResponse"/>
</operation>
</portType>
この例では<portType>要素が定義され"glossaryTerms"の名前とport 、および"getTerm"の名前などoperation 。
"getTerm"操作が持つinput messageと呼ばれる"getTermRequest"とoutput messageと呼ばれる"getTermResponse" 。
<message>要素が定義するparts 、各メッセージのと関連するデータ型を。
<portType>要素
<portType>要素が定義されa web service 、 operationsを行うことができ、 messages関与しています。
リクエスト・レスポンス型は、最も一般的な操作タイプですが、WSDLは、4つのタイプを定義しています。
タイプ | 定義 |
---|---|
One-way | 操作は、メッセージを受信できますが、応答を返しません |
Request-response | 操作は要求を受信することができ、応答を返します。 |
Solicit-response | 操作は要求を送信することができますし、応答を待ちます |
Notification | 操作は、メッセージを送信することができますが、応答を待機しません |
WSDLワンウェイ操作
一方向の動作例:
<message name="newTermValues">
<part name="term" type="xs:string"/>
<part name="value" type="xs:string"/>
</message>
<portType name="glossaryTerms">
<operation name="setTerm">
<input name="newTerm" message="newTermValues"/>
</operation>
</portType >
上記の例では、portTypeの"glossaryTerms"呼ばれる一方向の動作定義"setTerm" 。
"setTerm"操作は使用して新しい用語集メッセージを入力可能にする"newTermValues"の入力パラメータを持つメッセージ"term"および"value" 。 ただし、出力は動作のために定義されていません。
WSDLのリクエスト - レスポンス操作
要求 - 応答動作例:
<message name="getTermRequest">
<part name="term" type="xs:string"/>
</message>
<message name="getTermResponse">
<part name="value" type="xs:string"/>
</message>
<portType name="glossaryTerms">
<operation name="getTerm">
<input message="getTermRequest"/>
<output message="getTermResponse"/>
</operation>
</portType>
上記の例では、portTypeの"glossaryTerms"と呼ばれる要求-応答操作定義"getTerm" 。
"getTerm"操作と呼ばれる入力メッセージが必要です"getTermRequest"と呼ばれるパラメータを持つ"term" 、と呼ばれる出力メッセージが返されます"getTermResponse"呼ばれるパラメータで"value" 。
WSDLは、SOAPへのバインド
WSDLバインディングは、Webサービスのためのメッセージフォーマットとプロトコルの詳細を定義しています。
要求 - 応答動作例:
<message name="getTermRequest">
<part name="term" type="xs:string"/>
</message>
<message name="getTermResponse">
<part name="value" type="xs:string"/>
</message>
<portType name="glossaryTerms">
<operation name="getTerm">
<input message="getTermRequest"/>
<output message="getTermResponse"/>
</operation>
</portType>
<binding type="glossaryTerms" name="b1">
<soap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http" />
<operation>
<soap:operation
soapAction="http://example.com/getTerm"/>
<input><soap:body use="literal"/></input>
<output><soap:body use="literal"/></output>
</operation>
</binding>
bindingの名前とタイプ-要素には次の2つの属性を持っています。
name属性は、 (you can use any name you want)バインディングの名前、および定義typeこの場合には、結合のためのポートへの属性ポイントを"glossaryTerms"ポート。
soap:binding -スタイルと輸送要素には次の2つの属性を持っています。
style属性は、することができ"rpc"または"document" 。 このケースでは、文書を使用しています。 transport属性は、使用するSOAPプロトコルを定義します。 このケースでは、HTTPを使用しています。
operation要素は、portTypeのが公開される各操作を定義します。
操作ごとに、対応するSOAPアクションが定義されなければなりません。 また、入力と出力のエンコード方法を指定する必要があります。 このケースでは使用"literal" 。