- WSDL significa Web Services Description Language
- WSDL é usado para descrever os serviços web
- WSDL é escrito em XML
- WSDL é uma recomendação do W3C de 26 junho 2007
Documentos WSDL
Um documento WSDL descreve um serviço web. Especifica o local do serviço, e os métodos do serviço, usando esses elementos principais:
Elemento | Descrição |
---|---|
<types> | Define os (XML Schema) tipos de dados usados pelo serviço web |
<message> | Define os elementos de dados para cada operação |
<portType> | Descreve as operações que podem ser realizadas e as mensagens envolvidas. |
<binding> | Define o formato de protocolo e informações para cada tipo de porta |
A estrutura principal de um documento WSDL parece com isso:
<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>
Exemplo WSDL
Esta é uma fracção simplificada de um 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>
Neste exemplo, o <portType> elemento define "glossaryTerms" como o nome de uma port , e "getTerm" como o nome de uma operation .
O "getTerm" operação tem uma input message chamada "getTermRequest" e uma output message chamado "getTermResponse" .
O <message> elementos definem as parts de cada mensagem e os tipos de dados associados.
O <portType> Elemento
O <portType> elemento define a web service , as operations que podem ser realizadas, e as messages que estão envolvidos.
O tipo de solicitação-resposta é o tipo mais comum operação, mas WSDL define quatro tipos:
Digitar | Definição |
---|---|
One-way | A operação pode receber uma mensagem, mas não retornará uma resposta |
Request-response | A operação pode receber um pedido e irá retornar uma resposta |
Solicit-response | A operação pode enviar um pedido e esperar por uma resposta |
Notification | A operação pode enviar uma mensagem, mas não vai esperar por uma resposta |
WSDL One-Way Operação
Um exemplo de operação one-way:
<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 >
No exemplo acima, os PortType "glossaryTerms" define uma operação one-way chamada "setTerm" .
O "setTerm" operação permite a entrada de mensagens novas termos do glossário usando um "newTermValues" mensagem com o parâmetros de entrada "term" e "value" . No entanto, nenhuma saída é definido para a operação.
WSDL Request-Response Operation
Um exemplo de operação de solicitação-resposta:
<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>
No exemplo acima, os PortType "glossaryTerms" define uma operação de solicitação-resposta chamado "getTerm" .
O "getTerm" operação requer uma mensagem de entrada chamada "getTermRequest" com um parâmetro chamado "term" , e irá retornar uma mensagem de saída chamada "getTermResponse" com um parâmetro chamado "value" .
WSDL vinculação a SABÃO
vinculações WSDL define a mensagem de formato e protocolo detalhes para um serviço web.
Um exemplo de operação de solicitação-resposta:
<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>
A binding elemento tem dois atributos - nome e tipo.
O name atributo (you can use any name you want) define o nome da ligação, e as type atributo aponta para a porta para a ligação, neste caso, o "glossaryTerms" porto.
O soap:binding elemento tem dois atributos - estilo e transporte.
O style atributo pode ser "rpc" ou "document" . Neste caso, usamos documento. O transport atributo define o protocolo SOAP para usar. Neste caso, usamos HTTP.
A operation elemento define cada operação que o portType expõe.
Para cada operação, a acção correspondente sabão tem de ser definida. Você também deve especificar como a entrada e saída são codificados. Neste caso, usamos "literal" .