Un WSDL peut-il indiquer la version SOAP (1.1 ou 1.2) du service Web?

Est-il possible de voir si un service Web utilise SOAP 1.1 ou 1.2, en fonction des informations du WSDL?

SOAP 1.1 utilise l’espace de noms http://schemas.xmlsoap.org/wsdl/soap/

SOAP 1.2 utilise l’espace de noms http://schemas.xmlsoap.org/wsdl/soap12/

Le wsdl est capable de définir des opérations sous soap 1.1 et soap 1.2 en même temps dans le même wsdl. C’est utile si vous avez besoin de faire évoluer votre fichier wsdl pour prendre en charge de nouvelles fonctionnalités nécessitant du soap 1.2 (par exemple, MTOM), dans ce cas vous n’avez pas besoin de créer un nouveau service mais de faire évoluer celui-ci.

Dans WSDL, si vous regardez la section Liaison , vous verrez clairement que la liaison de soap est explicitement mentionnée si le service utilise du soap 1.2. référez-vous à l’échantillon ci-dessous.

            

Si le service Web utilise soap 1.1, il ne définira pas explicitement de version soap dans le fichier WSDL sous la section de liaison. référez-vous à l’échantillon ci-dessous.

             

Comment déterminer la version SOAP du message SOAP?

mais rappelez-vous que ce n’est pas une méthode très recommandée pour déterminer la version de soap utilisée par vos services Web. la version du message soap peut être déterminée de l’une des manières suivantes.

1. vérifier l’espace de nom du message soap

 SOAP 1.1 namespace : http://schemas.xmlsoap.org/soap/envelope SOAP 1.2 namespace : http://www.w3.org/2003/05/soap-envelope 

2. vérifier les informations de liaison de transport (informations d’en-tête http) du message soap

SOAP 1.1: user text / xml pour le type de contexte

  POST /MyService HTTP/1.1 Content-Type: text/xml; charset="utf-8" Content-Length: xxx SOAPAction: "urn:uuid:myaction" 

SOAP 1.2: application utilisateur / soap + xml pour le type de contexte

  POST /MyService HTTP/1.1 Content-Type: application/soap+xml; charset="utf-8" Content-Length: xxx SOAPAction: "urn:uuid:myaction" 

3. utilisation des informations de faute SOAP

La structure d’un message d’erreur SOAP entre les deux versions est différente.

J’ai trouvé cette page

http://schemas.xmlsoap.org/wsdl/soap12/soap12WSDL.htm

qui dit que Soap 1.2 utilise le nouvel espace de noms http://schemas.xmlsoap.org/wsdl/soap12/

C’est dans l’extension ‘WSDL 1.1 Binding pour SOAP 1.1’.

Oui, vous pouvez généralement voir quelle version SOAP est prise en charge en fonction du WSDL.

Jetez un coup d’œil au service Web de démonstration WSDL . Il a une référence à l’espace de noms soap12 indiquant qu’il prend en charge SOAP 1.2. Si cela était absent, vous seriez probablement en sécurité en supposant que le service ne supportait que SOAP 1.1.

Atsortingbut de transport trouvé dans élément de liaison qui nous indique qu’il s’agit de la liaison WSDL 1.1 pour la liaison HTTP SOAP 1.1.

ex.