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