+
+La usabilidad de WSDL se extiende más allá de su uso como un contrato entre el cliente y el servicio alojado en un servidor. Siendo una definición formal, WSDL puede ser consumido por herramientas de servicios Web para realizar acciones, tales como:
+
+\begin{itemize}
+ \item Generar código de cliente en varios lenguajes.
+ \item Publicar un servicio Web.
+ \item Dinámicamente probar un servicio Web.
+\end{itemize}
+
+\subsection{Describir un servicio Web REST con WSDL 2.0}
+
+WSDL 2.0 es un lenguaje XML. El elemento raíz de un documento WSDL 2.0 es el elemento \emph{description}. Hay cuatro elementos hijo de tipo \emph{description} que juntos encapsulan todos los detalles sobre un servicio Web:
+
+\begin{itemize}
+ \item {\Large\emph{types}}
+ \item {\Large\emph{interface}}
+ \item {\Large\emph{binding}}
+ \item {\Large\emph{service}}
+\end{itemize}
+
+Un esqueleto de un documento WSDL 2.0 es mostrado en el Listado~\ref{list:WSDL20skeleton}):
+
+\definecolor{gray}{rgb}{0.9,0.9,0.9}
+\definecolor{shadecolor}{named}{gray}
+\lstset{language=XML, breaklines=false, backgroundcolor=\color{gray}, frame=single, captionpos=b, caption={Esqueleto de un documento WSDL 2.0}, label={list:WSDL20skeleton}}
+\lstinputlisting{source/wsdl20skeleton.xml}
+
+La estructura de un documento WSDL 2.0 difiere de la WSDL 1.1. Las diferencias más importantes se detallan a continuación:
+
+\begin{itemize}
+ \item El elemento raíz ha cambiado desde \emph{definitions} a \emph{description}.
+ \item El elemento \emph{portType} ha sido reemplazado con el elemento \emph{interface} para reflejar mejor su uso.
+ \item El elmento \emph{message} no existe como un elemento global. Las descripciones de los mensajes son ahora encapsuladas en el elemento \emph{interface}.
+ \item Un \emph{binding} se puede en WSDL 2.0 reutilizar. No necesita ahora ser asociado con un interfaz específico. La asociación puede ser realizada en la declaración del servicio.
+\end{itemize}
+
+El elemento \emph{types} contiene todas las definiciones de tipos que describen los mensajes del servicio Web. WSDL 2.0 puede ser usado con otros sistemas de tipado, pero prácticamente es únicamente utilizado con el esquema XML.
+
+El elemento \emph{interface} define las operaciones del servicio Web, incluyendo los mensajes input, output y fault (de fallo) que son pasados, y también el orden en el cual son enviados.
+
+El elemento \emph{binding} define cómo un cliente puede comunicar con el servicio Web. En el caso de servicios Web REST, un binding especifica que los clientes pueden comunicarse con el servidor usando HTTP.
+
+El elemento \emph{service} asocia una dirección para el servicio Web con un interfaz y binding específicos.