Una vez tenemos la dirección del documento WSDL, vamos a estudiar este documento para ver que acciones podemos realizar (muchas veces los desarrolladores de Web services dejan una documentación web -mucho más amigable que leer directamente el documento WSDL- sobre los métodos y tipos a usar, pero esto no es obligatorio). Lo primero que debemos hacer es fijarnos en los elementos
En la siguiente versión recortada del documento WSDL del Web service Currency Convertor podemos observar como dentro de la etiqueta de tipo portType < wsdl:portType name = "CurrencyConvertorSoap" > encontramos
<?xml version="1.0" encoding="utf-8"?>
<wsdl:definitions xmlns:http = "http://schemas.xmlsoap.org/wsdl/http/"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" >
...
<wsdl:types>
<s:schema elementFormDefault="qualified"
targetNamespace="http://www.webserviceX.NET/">
<s:element name="ConversionRate">
<s:complexType>
<s:sequence>
<s:element minOccurs="1" maxOccurs="1"
name="FromCurrency" type="tns:Currency" />
<s:element minOccurs="1" maxOccurs="1"
name="ToCurrency" type="tns:Currency" />
...
<s:simpleType name="Currency">
<s:restriction base="s:string">
<s:enumeration value="AFA" />
...
<s:enumeration value="EUR" />
...
<s:enumeration value="USD" />
...
<s:element name="ConversionRateResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="1" maxOccurs="1"
name="ConversionRateResult" type="s:double" />
...
<s:element name="double" type="s:double" />
</s:schema>
</wsdl:types>
<wsdl:message name="ConversionRateSoapIn">
<wsdl:part name="parameters" element="tns:ConversionRate" />
</wsdl:message>
...
<wsdl:portType name="CurrencyConvertorSoap">
<wsdl:operation name="ConversionRate">
...
<wsdl:input message="tns:ConversionRateSoapIn" />
...
...
</wsdl:definitions>
Resumiendo, podemos ver que para poder realizar la conversión de Euros a Dolares deberíamos llamar al método “ConversionRate” que espera dos valores (FromCurrency y ToCurrency), en esta caso el primer valor sera EUR (euros) y el segundo USD (dólares). El Web service nos devolvería el valor del cambio en un mensaje con una elemento de tipo ConversionRateResult (que es un double, tiene el doble de precisión que un float).