Gli ultimi tutorial di sviluppo web
 

XML WSDL


  • WSDL è sinonimo di Web Services Description Language
  • WSDL è usato per descrivere i servizi web
  • WSDL è scritto in XML
  • WSDL è una raccomandazione W3C dal 26 giugno 2007

I documenti WSDL

Un documento WSDL descrive un servizio web. Si specifica la posizione del servizio, e le modalità del servizio, utilizzando questi elementi principali:

Elemento Descrizione
<types> Definisce i (XML Schema) i tipi di dati utilizzati dal servizio web
<message> Definisce gli elementi di dati per ogni operazione
<portType> Descrive le operazioni che possono essere eseguite ei messaggi coinvolti.
<binding> Programma il formato digitale e dati per ogni tipo di porta

La struttura principale di un documento WSDL è simile al seguente:

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

WSDL Esempio

Questa è una frazione semplificata di 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>

In questo esempio, il <portType> elemento definisce "glossaryTerms" come il nome di un port , e "getTerm" come il nome di una operation .

Il "getTerm" operazione ha un input message chiamato "getTermRequest" e un output message chiamato "getTermResponse" .

Il <message> elementi definire le parts di ogni messaggio ei tipi di dati associati.


Il <portType> Element

Il <portType> elemento definisce a web service , le operations che possono essere eseguite, ei messages che sono coinvolti.

Il tipo di richiesta-risposta è il tipo di operazione più comune, ma WSDL definisce quattro tipi:

Digitare Definizione
One-way L'operazione può ricevere un messaggio, ma non restituirà una risposta
Request-response L'operazione può ricevere una richiesta e restituisce una risposta
Solicit-response L'operazione può inviare una richiesta e attenderà una risposta
Notification L'operazione può inviare un messaggio, ma non aspetterà una risposta

WSDL One-Way Funzionamento

Un'operazione esempio a senso unico:

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

Nell'esempio precedente, le portType "glossaryTerms" definisce un'operazione unidirezionale chiamato "setTerm" .

Il "setTerm" operazione permette di ingresso di messaggi nuovi termini del glossario utilizzando una "newTermValues" messaggio con il parametri di input "term" e "value" . Tuttavia, nessuna uscita è definito per l'operazione.


WSDL richiesta-risposta Funzionamento

Un'operazione esempio di richiesta-risposta:

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

Nell'esempio precedente, le portType "glossaryTerms" definisce un'operazione richiesta-risposta chiamato "getTerm" .

Il "getTerm" operazione richiede un messaggio di input chiamato "getTermRequest" con un parametro chiamato "term" , e restituirà un messaggio di output chiamato "getTermResponse" con un parametro chiamato "value" .


WSDL Binding a SOAP

binding WSDL definisce i Message Format e di protocollo dettagli per un servizio web.

Un'operazione esempio di richiesta-risposta:

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

Il binding elemento ha due attributi - nome e tipo.

Il name dell'attributo (you can use any name you want) definisce il nome del legame, ei type punti attributo al porto per la rilegatura, in questo caso il "glossaryTerms" porta.

La soap:binding elemento ha due attributi - stile e trasporto.

Lo style attributo può essere "rpc" o "document" . In questo caso usiamo documento. Il transport attributo definisce il protocollo SOAP da utilizzare. In questo caso si usa HTTP.

L' operation elemento definisce ogni operazione che l'portType espone.

Per ogni operazione corrispondente azione SOAP deve essere definito. È inoltre necessario specificare come l'ingresso e l'uscita sono codificati. In questo caso usiamo "literal" .