リクエストごとに SOAP ドキュメントが送信されます。私たちが書店で、特定の本の現在の価格を知るためにクエリを実行するリモート サーバーを持っていたとします。本のタイトル、ページ数、ISBN 番号をサーバーに渡す必要があるとします。
価格を知りたいときはいつでも、一意の SOAP メッセージを送信します。次のようになります。
<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:GetBookPrice xmlns:m="http://namespaces.my-example-book-info.com">
<ISBN>978-0451524935</ISBN>
<Title>1984</Title>
<NumPages>328</NumPages>
</m:GetBookPrice>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
そして、次のような SOAP 応答メッセージが返されることを期待しています。
<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:GetBookPriceResponse xmlns:m="http://namespaces.my-example-book-info.com">
<CurrentPrice>8.99</CurrentPrice>
<Currency>USD</Currency>
</m:GetBookPriceResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
次に、WSDL は、サーバーがメッセージを受信したときにこのメッセージを処理/処理する方法を記述します。私たちの場合、タイトル、NumPages、および ISBN がどのタイプになるか、GetBookPrice メッセージからの応答を期待するかどうか、およびその応答がどのように見えるかを記述します。
タイプは次のようになります。
<wsdl:types>
<!-- all type declarations are in a chunk of xsd -->
<xsd:schema targetNamespace="http://namespaces.my-example-book-info.com"
xmlns:xsd="http://www.w3.org/1999/XMLSchema">
<xsd:element name="GetBookPrice">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="ISBN" type="string"/>
<xsd:element name="Title" type="string"/>
<xsd:element name="NumPages" type="integer"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="GetBookPriceResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="CurrentPrice" type="decimal" />
<xsd:element name="Currency" type="string" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
</wsdl:types>
ただし、WSDL には、操作を行うためにどの関数がリンクされているか、サービスで使用できる操作、サービス/操作にアクセスできるネットワーク上の場所など、より多くの情報も含まれています。
W3 注釈付き WSDL の例も参照してください。