WSDL - Élément <portType>
le <portType> element combine plusieurs éléments de message pour former une opération complète unidirectionnelle ou aller-retour.
Par exemple, un <portType>peut combiner une demande et un message de réponse en une seule opération de demande / réponse. Ceci est le plus couramment utilisé dans les services SOAP. Un portType peut définir plusieurs opérations.
Prenons un morceau de code du chapitre Exemple WSDL -
<portType name = "Hello_PortType">
<operation name = "sayHello">
<input message = "tns:SayHelloRequest"/>
<output message = "tns:SayHelloResponse"/>
</operation>
</portType>
L'élément portType définit une seule opération, appelée sayHello .
L'opération se compose d'un seul message d'entrée SayHelloRequest et d'un
message de sortie SayHelloResponse .
Modèles de fonctionnement
WSDL prend en charge quatre modèles de fonctionnement de base -
Une manière
Le service reçoit un message. L'opération a donc un seul élément d' entrée . La grammaire pour une opération unidirectionnelle est -
<wsdl:definitions .... >
<wsdl:portType .... > *
<wsdl:operation name = "nmtoken">
<wsdl:input name = "nmtoken"? message = "qname"/>
</wsdl:operation>
</wsdl:portType >
</wsdl:definitions>
Demande de réponse
Le service reçoit un message et envoie une réponse. L'opération a donc un élément d' entrée , suivi d'un élément de sortie . Pour encapsuler les erreurs, un élément fault facultatif peut également être spécifié. La grammaire pour une opération de demande-réponse est -
<wsdl:definitions .... >
<wsdl:portType .... > *
<wsdl:operation name = "nmtoken" parameterOrder = "nmtokens">
<wsdl:input name = "nmtoken"? message = "qname"/>
<wsdl:output name = "nmtoken"? message = "qname"/>
<wsdl:fault name = "nmtoken" message = "qname"/>*
</wsdl:operation>
</wsdl:portType>
</wsdl:definitions>
Sollicitation-réponse
Le service envoie un message et reçoit une réponse. L'opération a donc un élément de sortie , suivi d'un élément d' entrée . Pour encapsuler les erreurs, un élément fault facultatif peut également être spécifié. La grammaire pour une opération de sollicitation-réponse est -
<wsdl:definitions .... >
<wsdl:portType .... > *
<wsdl:operation name = "nmtoken" parameterOrder = "nmtokens">
<wsdl:output name = "nmtoken"? message = "qname"/>
<wsdl:input name = "nmtoken"? message = "qname"/>
<wsdl:fault name = "nmtoken" message = "qname"/>*
</wsdl:operation>
</wsdl:portType >
</wsdl:definitions>
Notification
Le service envoie un message. L'opération a donc un seul élément de sortie . Voici la grammaire pour une opération de notification -
<wsdl:definitions .... >
<wsdl:portType .... > *
<wsdl:operation name = "nmtoken">
<wsdl:output name = "nmtoken"? message = "qname"/>
</wsdl:operation>
</wsdl:portType>
</wsdl:definitions>