Esercitazione XML

XML CASA Introduzione XML XML Come usare Albero XML Sintassi XML Elementi XML Attributi XML Spazi dei nomi XML Visualizzazione XML Richiesta HTTP XML Analizzatore XML XML DOM XPath XML XML XSLT XQuery XML XML XLink Validatore XML DTD XML Schema XML Server XML Esempi XML Quiz XML Certificato XML

XML AJAX

Introduzione AJAX AJAX XMLHttp Richiesta AJAX Risposta dell'AJAX File XML AJAX AJAX PHP AJAX ASP Database AJAX Applicazioni AJAX Esempi AJAX

XML DOM

DOM Introduzione Nodi DOM Accesso DOM Informazioni sul nodo DOM Elenco dei nodi DOM DOM attraversando Navigazione DOM DOM Ottieni valori Nodi di modifica DOM DOM Rimuovere i nodi DOM Sostituisci nodi DOM Crea nodi DOM Aggiungi nodi Clonazione dei nodi DOM Esempi DOM

Esercitazione XPath

Introduzione a XPath Nodi XPath Sintassi XPath Assi XPath Operatori XPath Esempi di XPath

Esercitazione XSLT

Introduzione a XSLT Lingue XSL Trasformazione XSLT XSLT <modello> XSLT <valore-di> XSLT <per-ciascuno> XSLT <ordina> XSLT <se> XSLT <scegli> Applicare XSLT XSLT sul Cliente XSLT sul server XSLT Modifica XML Esempi XSLT

Esercitazione XQuery

Introduzione a XQuery Esempio XQuery XQuery FLWOR XQuery HTML Termini di XQuery Sintassi XQuery Aggiungi XQuery XQuery Seleziona Funzioni XQuery

DTD XML

Introduzione alla DTD Blocchi di costruzione DTD Elementi DTD Attributi DTD Elementi DTD vs Attr Entità DTD Esempi di DTD

Schema XSD

Introduzione all'XSD XSD Come fare per XSD <schema> Elementi XSD Attributi XSD Restrizioni XSD

Complesso XSD

Elementi XSD XSD vuoto Solo elementi XSD Solo testo XSD XSD misto Indicatori XSD XSD <qualsiasi> XSD <qualsiasi attributo> Sostituzione XSD Esempio XSD

Dati XSD

Stringa XSD Data XSD Numerico XSD XSD Varie Riferimento XSD

Servizi Web

Servizi XML XML WSDL SAPONE XML XML RDF RSS XML

Riferimenti

Tipi di nodi DOM Nodo DOM Elenco nodi DOM DOM NamedNodeMap Documento DOM Elemento DOM Attributo DOM Testo DOM DOM CDATA Commento DOM DOM XMLHttpRichiesta Analizzatore DOM Elementi XSLT Funzioni XSLT/XPath

XML WSDL


  • WSDL sta per Web Services Description Language
  • WSDL viene utilizzato per descrivere i servizi Web
  • WSDL è scritto in XML
  • WSDL è una raccomandazione del W3C del 26 giugno 2007

Documenti WSDL

Un documento WSDL descrive un servizio Web. Specifica l'ubicazione del servizio e i metodi del servizio, utilizzando questi elementi principali:

Element Description
<types> Defines the (XML Schema) data types used by the web service
<message> Defines the data elements for each operation
<portType> Describes the operations that can be performed and the messages involved.
<binding> Defines the protocol and data format for each port type

La struttura principale di un documento WSDL è simile a questa:

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


Esempio WSDL

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 l' elemento <portType> definisce "glossaryTerms" come il nome di una porta e "getTerm" come il nome di un'operazione .

L'operazione "getTerm" ha un messaggio di input chiamato "getTermRequest" e un messaggio di output chiamato "getTermResponse".

Gli elementi <messaggio> definiscono le parti di ogni messaggio e i tipi di dati associati.


L'elemento <portType>

L'elemento <portType> definisce un servizio Web , le operazioni che possono essere eseguite e i messaggi coinvolti.

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

Type Definition
One-way The operation can receive a message but will not return a response
Request-response The operation can receive a request and will return a response
Solicit-response The operation can send a request and will wait for a response
Notification The operation can send a message but will not wait for a response

Operazione unidirezionale WSDL

Un esempio di operazione unidirezionale:

<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, portType "glossaryTerms" definisce un'operazione unidirezionale denominata "setTerm".

L'operazione "setTerm" consente di inserire nuovi messaggi di termini del glossario utilizzando un messaggio "newTermValues" con i parametri di input "term" e "value". Tuttavia, non viene definito alcun output per l'operazione.


Operazione richiesta-risposta WSDL

Un esempio di operazione 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, portType "glossaryTerms" definisce un'operazione di richiesta-risposta denominata "getTerm".

L'operazione "getTerm" 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 Associazione a SOAP

Le associazioni WSDL definiscono il formato del messaggio e i dettagli del protocollo per un servizio Web.

Un esempio di operazione 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>

L' elemento di associazione ha due attributi: nome e tipo.

L'attributo name (puoi usare qualsiasi nome tu voglia) definisce il nome dell'associazione e l'attributo type punta alla porta per l'associazione, in questo caso la porta "glossaryTerms".

L' elemento soap:binding ha due attributi: stile e trasporto.

L'attributo style può essere "rpc" o "document". In questo caso utilizziamo document. L'attributo transport definisce il protocollo SOAP da utilizzare. In questo caso utilizziamo HTTP.

L' elemento operation definisce ogni operazione esposta da portType.

Per ogni operazione deve essere definita l'azione SOAP corrispondente. È inoltre necessario specificare come vengono codificati l'input e l'output. In questo caso usiamo "letterale".