Vous êtes sur la page 1sur 5

<definitions>

<types>
définition des types de données ...
</types>
<message>
déclaration des messages ...
(utilisation des types de données)
</message>
<!-- ... -->
<portType>
déclaration d'une interface pour un port ...
<operation>
déclaration d'une opération de l'interface ...
(utilisation des déclarations de messages)
</operation>
<!-- ... -->
</portType>
<!-- ... -->
<binding>
définition d'une liaison entre interface de port et protocole de
communication ...
</binding>
<!-- ... -->
<service>
déclaration d'un service concret ...
<port>
définition d'un port ...
(utilisation d'une liaison)
</port>
<!-- ... -->
</service>
<!-- ... -->
</definitions>

Racine

 Élément wsdl:definitions
 Nom du service web (attribut name)
 Espace de nommage cible pour les entités définies dans le document WSDL
(attribut targetnamespace)
 Noms d'usage pour des espaces utiles de nommage :

xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:tns="http://soap/" <!-- target namespace -->

Types de données

 Élément wsdl:types
 Définition d'un schéma pour les données, fréquemment par importation d'un fichier
définissant des éléments avec leurs types

<schema xmlns="http://www.w3.org/2001/XMLSchema">
<import namespace="http://soap/"
schemaLocation="automate_schema1.xsd"/>
</schema>
Déclaration des messages

 Un élément wsdl:message (avec un attribut name) pour chaque déclaration de


message
 Un ou plusieurs éléments wsdl:part (avec un attribut name pour l'identification et un
attribut element pour indiquer un élément du schéma) (pour CXF : un seul
élément wsdl:part de nom parameters)

Interface de ports

Les déclarations des opérations sont regroupées dans des interfaces, appelées types de port.

 Par interface, un élément wsdl:portType (avec un attribut name pour nommer


l'interface) regroupant un ou plusieurs éléments wsdl:operation (avec un
attribut name pour nommer l'opération) déclarant chacun une opération
 Élément wsdl:operation déclarant son type par une combinaison des
éléments wsdl:input et wsdl:output, et possiblement un élément wsdl:fault (pour
signaler une faute), chaque sous-élément étant spécifié par un attribut
optionnel name et un attribut message indiquant le type du message

Revue des quatre combinaisons possibles :

o procedure (one-way) : wsdl:input seul


o Requête-réponse : wsdl:input suivi de wsdl:ouput
o Sollicitation-réponse : wsdl:output suivi de wsdl:input
o Alerte : wsdl:output seul

Liaison

Une liaison relie une interface de port appartenant à la couche logique à un type de
communication particulier, SOAP généralement, HTTP possiblement, ou autre, appartenant à
la couche physique : elle concrétise physiquement la définition logique de l'interface.

 élément wsdl:binding avec un attribut name pour nommer la liaison et un


attribut type pour l'interface du port
 pour chaque opération de l'interface du port, un élément wsdl:operation avec un
attribut name pour identifier l'opération et des sous-
éléments wsdl:input, wsdl:output et wsdl:fault correspondant au type de l'opération
 Spécification de la liaison en attachant des sous-éléments provenant d'autres espaces
de nommage aux éléments précédents
 Liaison SOAP

Espace de nommage "http://schemas.xmlsoap.org/wsdl/soap/" (nommé soap ici)

o Sous wsdl:binding : élément soap:binding avec l’attribut transport indiquant


le protocole utilisé pour l’échange des messages SOAP, (en général HTTP
précisé par l’URI "http://schemas.xmlsoap.org/soap/http") et
l’attribut style précisant le mode par défaut de représentation du corps du
message SOAP rpc ou document (cas de CXF)))
o Sous wsdl:operation : élément soap:operation avec l'attribut style raffinant
celui hérité de soap:binding et l'attribut soapAction donnant l'intention (cas
de CXF : fixé à "", pour signifier que l'intention est dans l'URI du service)
o Sous wsdl:input, wsdl:output ou wsdl:fault : élément soap:body avec
l'attribut use valant literal pour compléter le mode

Service

Ensemble de ports spécifiés par une liaison (interface reliée à un protocole) et une adresse
URI

 service : élément wsdl:service avec un attribut name pour le nommer


 pour chaque port : sous-élément wsdl:port avec un attribut name pour le nommer, un
attribut binding spécifiant la liaison et dans le cas SOAP, et contenant un sous-
élément soap:address précisant l'adresse URI du port par son attribut location

SOAP

Protocole pour l'échange de messages

 v1.0 en 1998
 v1.2 en 2003

Protocole de transport : HTTP, SMTP, etc.

Intérêt de HTTP pour le transport : ubiquité (passage des firewalls)

Structure
<soap:Envelope
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" >
<soap:Header>
contenu xml ...
</soap:Header>
<soap:Body>
contenu xml ...
</soap:Body>
</soap:Envelope>
 En-tête : élément soap:Header contenant des informations sur le message (identité,
signature, etc.)
 Corps : élément soap:Body contenant le message, un document XML
o 4 modes de représentation pour le message : (document + rpc) x
(literal + encoded)
o Pour les services (WS-Interoperability Basic Profile) : deux modes
 Document x literal : document XML conforme à un schéma
quelconque
 rpc x literal : document XML conforme à un schéma particulier
représentant une commande (fonction accompagnée de ses arguments
ou de son résultat)
o Avec CXF : un mode document x literal (et pas d'en-tête) avec un schéma
représentant des commandes

Vous aimerez peut-être aussi