Estructura WSDL

(Imagen: Rembrandt - Artemis)

Un documento WSDL es un contrato entre un servicio y sus consumidores. Este contrato establece els ervice endpoint, las operaciones del servicio, y los tipos de datos requeridos para estas operaciones. El elemento más externo de un WSDL se llama definitions, dado que nos provee definiciones agrupadas en las siguientes secciones:

  • La sección types (opcional), nos provee definiciones de tipos de datos sobre un sistema de tipos de datos, como un esquema XML. un documento que define tipos de datos es un XSD (XML Schema Definition). La sección de tipos mantiene referencias a XSD's. Si esta sección está vacía, sólamente se utilizan tipos de datos simples, como xsd:string y xsd:long.

  • La sección message define los mensajes que implementan el servicio. Los mensajes son construidos en base a los tipos de datos definidos en la sección anterior. El orden de los mensajes indica el patrón de servicio.Los mensajes in son los que llegan al servicios, mientras que los out son enviados desde el servicio. Si el orden de los mensajes es in/out, entonces el patrón es request/response, mientras que si el orden es out/in el patrón es solicit/response.

  • La sección portType nos presenta el servicio como un grupo de operaciones, donde cada operación tiene uno o más mensajes. Las operaciones son nombradas de acuerdo a los métodos anotados con @WebMethod.

  • La sección binding es donde las definiciones WSDL se concretizan. Un binding WSDL es una especie de "implementación" de un portType WSDL, y provee detalles concretos del servicio como:

El protocolo de transportea usar al enviar y recibir los mensajes SOAP. Se puede usar HTTP o SMTP como protocolo de capa de aplicación. Por ejemplo:



El valor del atributo transporte señala que los mensajes SOAP del servicio van a ser enviados y recibidos sobre HTTP.

El estilo del servicio, puede tomar los valores de rpc o document. El estilo document es el valor por defecto. La anotación:

@SOAPBinding(style= Style.RPC)

Configura el atributo style para que tenga el valor de rpc, el documento WSDL generado.

  • La sección service especifica uno o más endpoints donde la funcionalidad del servicio -el total de sus operaciones- estará disponible. En términos técnicos, la sección service lista uno o más elementos port, donde un port consiste en un portType jutno a su binding correspondiente


Basado en el capítulo 2 de Java Web Services: Up and Running de Martin Kalin

Publicar un comentario