wsdl
6177 ワード
WSDL文書例
次の例は、株式のオファーを提供する簡単なWebサービスのWSDL定義である.このサービスサポートは、HTTP上でSOAP 1.1プロトコルを実行することによって、GetLastTradePriceという単一の動作を実現する.この要求は、文字列の種類のtickerSymbolを受け取り、タイプが浮動小数点の価格を返します.
上記の部分はデータタイプの定義であり、ここでは2つの要素を定義する構造である. TradePrice Request(取引価格要求):この要素を文字列要素を含む複合タイプ要素として定義します. TradePriceResoult(取引価格):この要素を浮動小数点要素(price)を含む複合タイプ要素として定義します.
この部分はメッセージフォーマットの抽象的な定義であり、2つのメッセージフォーマットが定義されている. GetlastTradePrice Input(最後の取引価格を取得するための要求メッセージフォーマット):メッセージ・クリップから構成され、メッセージ・クリップの名前はbodyであり、具体的な要素タイプはTradePrice Requestである.(前に定義されています) GetLastTradePriceOutput(最後の取引価格を取得する応答メッセージフォーマット):メッセージ断片から構成され、メッセージ断片の名前はbodyであり、具体的な要素タイプはTradePrice Resoultである.(前に定義されています)
この部分はサービスアクセスポイントの呼び出しモードのタイプを定義しており、StockQuoteServiceのあるエントリタイプは要求/応答モードであり、要求メッセージはGetlastTradePrice Inputであり、応答メッセージはGetLastTradePrice Outputであることを示している.
この部分は、サービス・アクセスポイントの抽象的な定義をSOAP HTTPと結びつけ、SOAP/HTTPを介して前に述べたアクセス・ポイント・タイプの展開に従ったアクセス・エントリにアクセスする方法を説明する.具体的なSOAP呼び出し時に使用すべきsopActionは「http://example.com/GetLastTradePrice要求/応答メッセージの符号化スタイルは、いずれもSOAP仕様のデフォルト定義の符号化スタイルを採用すべきである.http://schemas.xmlsoap.org/soap/encoding/「です
この部分は具体的なWebサービスの定義であり、このStockQuoteServiceというWebサービスの中で、サービスアクセス・エントランスを提供しています.アクセス・アドレスは「StockQuoteService」です.http://example.com/stockquote「使用するメッセージモードは、前のbindingによって定義されている.
このWSDL文書の説明によれば、具体的なWebサービスの使用において、具体的に発生するSOAPインタラクションは、以下のようになるかもしれない.
SOAPメッセージ要求:
SOAPメッセージ応答:
次の例は、株式のオファーを提供する簡単なWebサービスのWSDL定義である.このサービスサポートは、HTTP上でSOAP 1.1プロトコルを実行することによって、GetLastTradePriceという単一の動作を実現する.この要求は、文字列の種類のtickerSymbolを受け取り、タイプが浮動小数点の価格を返します.
<?xml version="1.0"?>
<definitions name="StockQuote"
targetNamespace="http://example.com/stockquote.wsdl"
xmlns:tns="http://example.com/stockquote.wsdl"
xmlns:xsd1="http://example.com/stockquote.xsd"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns="http://schemas.xmlsoap.org/wsdl/">
<types>
<schema targetNamespace="http://example.com/stockquote.xsd"
xmlns="http://www.w3.org/1999/XMLSchema">
<element name="TradePriceRequest">
<complexType>
<all>
<element name="tickerSymbol" type="string"/>
</all>
</complexType>
</element>
<element name="TradePriceResult">
<complexType>
<all>
<element name="price" type="float"/>
</all>
</complexType>
</element>
</schema>
</types>
上記の部分はデータタイプの定義であり、ここでは2つの要素を定義する構造である.
<message name="GetLastTradePriceInput">
<part name="body" element="xsd1:TradePriceRequest"/>
</message>
<message name="GetLastTradePriceOutput">
<part name="body" element="xsd1:TradePriceResult"/>
</message>
この部分はメッセージフォーマットの抽象的な定義であり、2つのメッセージフォーマットが定義されている.
<portType name="StockQuotePortType">
<operation name="GetLastTradePrice">
<input message="tns:GetLastTradePriceInput"/>
<output message="tns:GetLastTradePriceOutput"/>
</operation>
</portType>
この部分はサービスアクセスポイントの呼び出しモードのタイプを定義しており、StockQuoteServiceのあるエントリタイプは要求/応答モードであり、要求メッセージはGetlastTradePrice Inputであり、応答メッセージはGetLastTradePrice Outputであることを示している.
<binding name="StockQuoteSoapBinding" type="tns:StockQuotePortType">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="GetLastTradePrice">
<soap:operation soapAction="http://example.com/GetLastTradePrice"/>
<input>
<soap:body use="literal" namespace="http://example.com/stockquote.xsd"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</input>
<output>
<soap:body use="literal" namespace="http://example.com/stockquote.xsd"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</output>
</soap:operation>
</operation>
</soap:binding>
</binding>
この部分は、サービス・アクセスポイントの抽象的な定義をSOAP HTTPと結びつけ、SOAP/HTTPを介して前に述べたアクセス・ポイント・タイプの展開に従ったアクセス・エントリにアクセスする方法を説明する.具体的なSOAP呼び出し時に使用すべきsopActionは「http://example.com/GetLastTradePrice要求/応答メッセージの符号化スタイルは、いずれもSOAP仕様のデフォルト定義の符号化スタイルを採用すべきである.http://schemas.xmlsoap.org/soap/encoding/「です
<service name="StockQuoteService">
<documentation> </documentation>
<port name="StockQuotePort" binding="tns:StockQuoteBinding">
<soap:address location="http://example.com/stockquote"/>
</port>
</service>
</definitions>
この部分は具体的なWebサービスの定義であり、このStockQuoteServiceというWebサービスの中で、サービスアクセス・エントランスを提供しています.アクセス・アドレスは「StockQuoteService」です.http://example.com/stockquote「使用するメッセージモードは、前のbindingによって定義されている.
このWSDL文書の説明によれば、具体的なWebサービスの使用において、具体的に発生するSOAPインタラクションは、以下のようになるかもしれない.
SOAPメッセージ要求:
POST /StockQuote HTTP/1.1
Host: example.com
Content-Type: text/xml; charset="utf-8"
Content-Length: nnnn
SOAPAction: "http://example.com/GetLastTradePrice"
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Body>
<m:TradePriceRequest xmlns:m="http://example.com/stockquote.xsd">
<tickerSymbol>MSFT</tickerSymbol >
</m:TradePriceRequest>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
SOAPメッセージ応答:
HTTP/1.1 200 OK
Content-Type: text/xml; charset="utf-8"
Content-Length: nnnn
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
<SOAP-ENV:Body>
<m:TradePriceResult xmlns:m=" http://example.com/stockquote.xsd ">
<price>74.5</price>
</m:TradePriceResult >
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>