Derniers tutoriels de développement web
 

XML WSDL


  • WSDL signifie Web services Description Language
  • WSDL est utilisé pour décrire les services Web
  • WSDL est écrit en XML
  • WSDL est une recommandation du W3C 26. Juin 2007

Documents WSDL

Un document WSDL décrit un service Web. Il indique l'emplacement du service, et les méthodes du service, l'utilisation de ces éléments majeurs:

Élément La description
<types> Définit les (XML Schema) types de données utilisées par le service Web
<message> Définit les éléments de données pour chaque opération,
<portType> Décrit les opérations qui peuvent être effectuées et les messages impliqués.
<binding> Définit le format de protocole et des données pour chaque type de port

La structure principale d'un document WSDL ressemble à ceci:

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

Ceci est une fraction simplifiée d'un document 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>

Dans cet exemple , le <portType> élément définit "glossaryTerms" comme le nom d'un port de , et "getTerm" comme le nom d'une operation .

Le "getTerm" opération a un input message appelé "getTermRequest" et un output message appelé "getTermResponse" .

Le <message> éléments définissent les parts de chaque message et les types de données associés.


Le <portType> Element

Le <portType> élément définit a web service , les operations qui peuvent être effectuées, et les messages qui sont impliqués.

Le type de demande-réponse est le type d'opération le plus commun, mais WSDL définit quatre types:

Type Définition
One-way L'opération peut recevoir un message mais ne reviendra pas une réponse
Request-response L'opération peut recevoir une demande et retourner une réponse
Solicit-response L'opération peut envoyer une demande et attendre une réponse
Notification L'opération peut envoyer un message, mais ne sera pas attendre une réponse

WSDL One-Way Operation

A sens unique exemple de fonctionnement:

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

Dans l'exemple ci - dessus, les portType "glossaryTerms" définit une opération à sens unique appelé "setTerm" .

Le "setTerm" opération permet l' entrée des nouveaux termes du glossaire des messages en utilisant un "newTermValues" message avec des paramètres d'entrée "term" et "value" . Cependant, aucune sortie est définie pour l'opération.


Opération WSDL de Demande-réponse

Une requête-réponse exemple de fonctionnement:

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

Dans l'exemple ci - dessus, les portType "glossaryTerms" définit une opération de demande-réponse appelé "getTerm" .

Le "getTerm" opération nécessite un message d'entrée appelé "getTermRequest" avec un paramètre appelé "term" , et renvoie un message de sortie appelé "getTermResponse" avec un paramètre appelé "value" .


La liaison WSDL SOAP

liaisons WSDL définit les messages de format et les détails du protocole pour un service Web.

Une requête-réponse exemple de fonctionnement:

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

La binding élément possède deux attributs - le nom et le type.

Le name attribut (you can use any name you want) que type "glossaryTerms" (you can use any name you want) définit le nom de la liaison, et les type de points d'attribut au port pour la liaison, dans ce cas , le "glossaryTerms" port.

Le soap:binding élément possède deux attributs - style et transport.

Le style de l' attribut peut être "rpc" ou "document" . Dans ce cas, nous utilisons le document. Le transport attribut définit le protocole SOAP à utiliser. Dans ce cas, nous utilisons HTTP.

L' operation élément définit chaque opération que le portType expose.

Pour chaque opération, l'action SOAP correspondante doit être définie. Vous devez également indiquer comment l'entrée et la sortie sont encodés. Dans ce cas , nous utilisons "literal" .