Documento WSDL

El documento WSDL es simplemente un documento XML.

Contiene una serie de definiciones que describen un servicio web.

Estructura del documento WSDL

Un documento WSDL utiliza estos elementos principales para describir un servicio web:

Elemento Definición
<portType> Operaciones ejecutadas por el servicio web
<message> Mensajes utilizados por el servicio web
<types> Tipos de datos utilizados por el servicio web
<binding> Protocolo de comunicación utilizado por el servicio web

La estructura principal de un documento WSDL es similar a esta:

<definitions>
<types>
   definición de tipos...
</types>
<message>
   definición de un mensaje...
</message>
<portType>
   definición de un puerto...
</portType>
<binding>
   definición de un enlace...
</binding>
</definitions>

El documento WSDL puede contener otros elementos, como el elemento extension, y un elemento service, que puede combinar la definición de varios servicios web en un solo documento WSDL.

Para obtener una descripción completa de la sintaxis, visite Sintaxis WSDL Esta sección.

Puerto WSDL

<portType> El elemento es uno de los elementos más importantes de WSDL.

Descripción de un servicio web, operaciones que pueden ejecutarse y los mensajes relacionados.

El elemento <portType> puede compararse con una biblioteca de funciones en un lenguaje de programación tradicional (o un módulo, o una clase).

Mensajes WSDL

<message> El elemento define los elementos de datos de una operación.

Cada mensaje está compuesto por una o más partes. Estas partes pueden compararse con los parámetros de una llamada a una función en un lenguaje de programación tradicional.

Tipos WSDL

<types> El elemento define los tipos de datos utilizados por el servicio web.

Para maximizar la neutralidad de plataforma, WSDL utiliza la sintaxis del XML Schema para definir tipos de datos.

Enlaces WSDL

<binding> El elemento define el formato de mensaje y los detalles del protocolo para cada puerto.

Ejemplo de WSDL

Este es un fragmento simplificado de un documento WSDL:

<message name="getTermRequest">
   <part name="term" type="xs:string"/>
</message>
<message name="getTermResponse">
   <part name="value" type="xs:string"/>
</message>
<portType name="glossaryTerms">
  <operation name="getTerm">
        <input message="getTermRequest"/>
        <output message="getTermResponse"/>
  </operation>
</portType>

En este ejemplo,<portType> El elemento define "glossaryTerms" como algunaPuertoEl nombre, define "getTerm" como algunaOperaciónEl nombre.

La operación "getTerm" tiene un nombre de "getTermRequest".Mensaje de entrada, y un mensaje de entrada llamado "getTermResponse".Mensaje de salida.

<message> El elemento puede definir cada mensajeComponente, así como los tipos de datos asociados.

Comparado con la programación tradicional, glossaryTerms es una biblioteca de funciones y "getTerm" es una función con parámetros de entrada "getTermRequest" y parámetros de salida getTermResponse.