SOAP - Sobre

El sobre SOAP indica el inicio y el final del mensaje para que el receptor sepa cuándo se ha recibido un mensaje completo. El sobre SOAP resuelve el problema de saber cuándo ha terminado de recibir un mensaje y está listo para procesarlo. Por tanto, el sobre SOAP es básicamente un mecanismo de embalaje.

Puntos a tener en cuenta

  • Cada mensaje SOAP tiene un elemento Envelope raíz.

  • El sobre es una parte obligatoria del mensaje SOAP.

  • Cada elemento Envelope debe contener exactamente un elemento Body.

  • Si un Sobre contiene un elemento de Encabezado, no debe contener más de uno, y debe aparecer como el primer hijo del Sobre, antes del Cuerpo.

  • El sobre cambia cuando cambian las versiones de SOAP.

  • El sobre SOAP se especifica mediante el prefijo de espacio de nombres ENV y el elemento Envelope.

  • La codificación SOAP opcional también se especifica mediante un nombre de espacio de nombres y el elemento encodingStyle opcional , que también podría apuntar a un estilo de codificación diferente al de SOAP.

  • Un procesador SOAP compatible con v1.1 genera un error al recibir un mensaje que contiene el espacio de nombres del sobre v1.2.

  • Un procesador SOAP compatible con v1.2 genera una falla VersionMismatch si recibe un mensaje que no incluye el espacio de nombres del sobre v1.2.

Mensaje SOAP compatible con v1.2

A continuación se muestra un ejemplo de mensaje SOAP compatible con 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 con HTTP POST

El siguiente ejemplo ilustra el uso de un mensaje SOAP dentro de una operación HTTP POST, que envía el mensaje al servidor. Muestra los espacios de nombres para la definición del esquema del sobre y para la definición del esquema de las reglas de codificación. La referencia OrderEntry en el encabezado HTTP es el nombre del programa que se invocará en el sitio 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 - El enlace HTTP especifica la ubicación del servicio.