Saltar la navegación

1.3.4.- Descripción del servicio: WSDL (V).

Imagen de una pantalla plana de ordenador y encima una rueda dentada.
Everaldo Coelho and YellowIcon (GNU/GPL)

El siguiente elemento de un documento WSDL es binding. Antes comentábamos que existían distintos estilos de enlazado, que influían en cómo se debían crear los mensaje. En el elemento binding es dónde debes indicar que el estilo de enlazado de tu documento sea RPC/encoded.

Aunque es posible crear documentos WSDL con varios elementos binding, la mayoría contendrán solo uno (si no fuera así, sus atributos name deberán ser distintos). En él, para cada una de las funciones (operation) del portType que acabamos de crear, se deberá indicar cómo se codifica y transmite la información.

Imagen de un esquema de la estructura del elemento binding de WSDL. Puede contener 1 o más elementos operation, cada uno de los cuales puede contener un elemento input y otro output.
Elaborado con DIA (Elaboración propia)

Para el portType anterior, podemos crear un elemento binding como el siguiente:

<binding name="usuarioBinding" type="tns:usuarioPortType">
    <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http" />
    <operation name="getUsuario">
        <soap:operation soapAction="http://localhost/dwes/ut6/getUsuario.php?getUsuario" />
        <input>
            <soap:body use="encoded" 
                encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 
                namespace="http://localhost/dwes/ut6" />
        </input>
        <output>
            <soap:body use="encoded" 
                encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 
                namespace="http://localhost/dwes/ut6" />
        </output>
    </operation>
</binding>

Fíjate que el atributo type hace referencia al portType creado anteriormente. El siguiente elemento indica el tipo de codificación (RPC) y, mediante la URL correspondiente, el protocolo de transporte a utilizar (HTTP). Obviamente, deberás añadir el correspondiente espacio de nombres al elemento raíz:

<definitions 
    name="WSDLusuario" 
    targetNamespace="http://localhost/dwes/ut6"
    xmlns:tns="http://localhost/dwes/ut6" 
    xmlns="http://schemas.xmlsoap.org/wsdl/" 
    xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
    xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
    xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" 
    . . .
>


El elemento soap:operation debe contener un atributo soapAction con la URL para esa función (operation) en particular. Dentro de él habrá normalmente un elemento input y otro output (los mismos que en la operation correspondiente). En ellos, mediante los atributos del elemento soap:body, se indica el estilo concreto de enlazado (encoded con su encondingStyle correspondiente).