tutoriais mais recente desenvolvimento web
 

XML WSDL


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