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