SOAP - Envelope

O envelope SOAP indica o início e o fim da mensagem para que o destinatário saiba quando uma mensagem inteira foi recebida. O envelope SOAP resolve o problema de saber quando você acabou de receber uma mensagem e está pronto para processá-la. O envelope SOAP é, portanto, basicamente um mecanismo de embalagem.

Pontos a serem observados

  • Cada mensagem SOAP possui um elemento de envelope raiz.

  • O envelope é uma parte obrigatória da mensagem SOAP.

  • Cada elemento Envelope deve conter exatamente um elemento Body.

  • Se um envelope contém um elemento de cabeçalho, ele deve conter no máximo um e deve aparecer como o primeiro filho do envelope, antes do corpo.

  • O envelope muda quando as versões do SOAP mudam.

  • O envelope SOAP é especificado usando o prefixo de namespace ENV e o elemento Envelope.

  • A codificação SOAP opcional também é especificada usando um nome de namespace e o elemento encodingStyle opcional , que também pode apontar para um estilo de codificação diferente do SOAP.

  • Um processador SOAP compatível com v1.1 gera uma falha ao receber uma mensagem contendo o namespace do envelope v1.2.

  • Um processador SOAP compatível com v1.2 gera uma falha de VersionMismatch se receber uma mensagem que não inclui o namespace de envelope v1.2.

Mensagem SOAP compatível com v1.2

Abaixo está um exemplo de mensagem SOAP compatível com 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 com HTTP POST

O exemplo a seguir ilustra o uso de uma mensagem SOAP em uma operação HTTP POST, que envia a mensagem ao servidor. Mostra os namespaces para a definição do esquema do envelope e para a definição do esquema das regras de codificação. A referência OrderEntry no cabeçalho HTTP é o nome do programa a ser chamado no site 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 - A ligação HTTP especifica a localização do serviço.