Los últimos tutoriales de desarrollo web
 

XML WSDL


  • WSDL es sinónimo de WSDL
  • WSDL se utiliza para describir servicios Web
  • WSDL está escrito en XML
  • WSDL es una recomendación W3C del 26 de junio de de 2007

Los documentos WSDL

Un documento WSDL describe un servicio web. Se especifica la ubicación del servicio, y los métodos de servicio, el uso de estos elementos principales:

Elemento Descripción
<types> Define los (XML Schema) tipos de datos utilizados por el servicio web
<message> Define los elementos de datos para cada operación
<portType> Describe las operaciones que se pueden realizar y los mensajes implicados.
<binding> Define el formato de protocolo y datos para cada tipo de puerto

La estructura principal de un documento WSDL es el siguiente:

<definitions>

<types>
  data type definitions........
</types>

<message>
  definition of the data being communicated....
</message>

<portType>
  set of operations......
</portType>

<binding>
  protocol and data format specification....
</binding>

</definitions>

Ejemplo WSDL

Esta es una fracción simplificada 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, el <portType> elemento define "glossaryTerms" como el nombre de un port , y "getTerm" como el nombre de una operation .

El "getTerm" operación tiene un input message llamada "getTermRequest" y un output message llamada "getTermResponse" .

La <message> elementos definen las parts de cada mensaje y los tipos de datos asociados.


La <portType> Element

La <portType> elemento define a web service , las operations que se pueden realizar, y los messages que están involucrados.

El tipo de solicitud-respuesta es el tipo de operación más común, pero WSDL define cuatro tipos:

Tipo Definición
One-way La operación puede recibir un mensaje, pero no devolverá una respuesta
Request-response La operación puede recibir una petición y devolverá una respuesta
Solicit-response La operación puede enviar una solicitud y esperar una respuesta
Notification La operación puede enviar un mensaje, pero no va a esperar una respuesta

WSDL unidireccional Operación

Una sola vía Ejemplo de operación:

<message name="newTermValues">
  <part name="term" type="xs:string"/>
  <part name="value" type="xs:string"/>
</message>

<portType name="glossaryTerms">
  <operation name="setTerm">
    <input name="newTerm" message="newTermValues"/>
  </operation>
</portType >

En el ejemplo anterior, los portType "glossaryTerms" define una operación unidireccional llamado "setTerm" .

El "setTerm" operación permite la entrada de mensajes nuevos términos del glosario usando un "newTermValues" mensaje con los parámetros de entrada "term" y "value" . Sin embargo, no hay salida se define para la operación.


Petición-Respuesta WSDL Operación

Una petición-respuesta Ejemplo de operación:

<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 el ejemplo anterior, los portType "glossaryTerms" define una operación de petición-respuesta se llama "getTerm" .

El "getTerm" operación requiere un aviso de llamada "getTermRequest" con un parámetro llamado "term" , y devolverá un mensaje de salida llamada "getTermResponse" con un parámetro llamado "value" .


La unión a WSDL de SOAP

encuadernaciones WSDL define el mensaje formato y protocolo de los detalles de un servicio web.

Una petición-respuesta Ejemplo de operación:

<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>

<binding type="glossaryTerms" name="b1">
   <soap:binding style="document"
   transport="http://schemas.xmlsoap.org/soap/http" />
   <operation>
     <soap:operation soapAction="http://example.com/getTerm"/>
     <input><soap:body use="literal"/></input>
     <output><soap:body use="literal"/></output>
  </operation>
</binding>

La binding elemento tiene dos atributos - nombre y tipo.

El name atributo (you can use any name you want) define el nombre de la unión, y los type puntos de atributo al puerto para la unión, en este caso el "glossaryTerms" puerto.

El soap:binding elemento tiene dos atributos - estilo y el transporte.

El style atributo puede ser "rpc" o "document" . En este caso utilizamos documento. El transport atributo define el protocolo SOAP para su uso. En este caso utilizamos HTTP.

La operation elemento define cada operación que expone la portType.

Para cada operación de la acción de SOAP correspondiente tiene que ser definido. También debe especificar la codificación de la entrada y la salida. En este caso utilizamos "literal" .