SOAP - Enveloppe

L'enveloppe SOAP indique le début et la fin du message afin que le récepteur sache quand un message entier a été reçu. L'enveloppe SOAP résout le problème de savoir quand vous avez fini de recevoir un message et que vous êtes prêt à le traiter. L'enveloppe SOAP est donc essentiellement un mécanisme de conditionnement.

Points à noter

  • Chaque message SOAP a un élément Enveloppe racine.

  • L'enveloppe est une partie obligatoire du message SOAP.

  • Chaque élément Envelope doit contenir exactement un élément Body.

  • Si une enveloppe contient un élément d'en-tête, elle ne doit pas en contenir plus d'un et elle doit apparaître comme le premier enfant de l'enveloppe, avant le corps.

  • L'enveloppe change lorsque les versions SOAP changent.

  • L'enveloppe SOAP est spécifiée à l'aide du préfixe d'espace de noms ENV et de l'élément Envelope.

  • Le codage SOAP facultatif est également spécifié à l'aide d'un nom d'espace de noms et de l' élément facultatif encodingStyle , qui peut également pointer vers un style de codage autre que SOAP.

  • Un processeur SOAP compatible v1.1 génère une erreur lors de la réception d'un message contenant l'espace de noms de l'enveloppe v1.2.

  • Un processeur SOAP compatible v1.2 génère une erreur VersionMismatch s'il reçoit un message qui n'inclut pas l'espace de noms de l'enveloppe v1.2.

Message SOAP conforme à la v1.2

Vous trouverez ci-dessous un exemple de message SOAP compatible v1.2.

<?xml version = "1.0"?>
<SOAP-ENV:Envelope 
   xmlns:SOAP-ENV = "http://www.w3.org/2001/12/soap-envelope" 
   SOAP-ENV:encodingStyle = " http://www.w3.org/2001/12/soap-encoding">
   ...
   Message information goes here
   ...
</SOAP-ENV:Envelope>

SOAP avec HTTP POST

L'exemple suivant illustre l'utilisation d'un message SOAP dans une opération HTTP POST, qui envoie le message au serveur. Il montre les espaces de noms pour la définition de schéma d'enveloppe et pour la définition de schéma des règles de codage. La référence OrderEntry dans l'en-tête HTTP est le nom du programme à appeler sur le site Web tutorialspoint.com.

POST /OrderEntry HTTP/1.1
Host: www.tutorialspoint.com
Content-Type: application/soap;  charset="utf-8"
Content-Length: nnnn

<?xml version = "1.0"?>
<SOAP-ENV:Envelope 
   xmlns:SOAP-ENV = "http://www.w3.org/2001/12/soap-envelope" 
   SOAP-ENV:encodingStyle = " http://www.w3.org/2001/12/soap-encoding">
   ...
   Message information goes here
   ...
</SOAP-ENV:Envelope>

NOTE - La liaison HTTP spécifie l'emplacement du service.