Como primer miembro del elemento "Envelope"
, puede haber de forma opcional un elemento Header
. Si existe, puede contener varios elementos con información adicional sobre cómo procesar el mensaje SOAP
. A continuación debe figurar obligatoriamente un elemento "Body"
, que es dónde se incluye, dependiendo del tipo de mensaje, la petición o la respuesta.
Sería muy complejo programar un servicio web que procesase el XML
recibido en cada petición SOAP
, y generase el XML
relativo a cada respuesta correspondiente. Existen mecanismos de ayuda que nos evitan tener que tratar con las interioridades del protocolo SOAP
.
De las implementaciones de SOAP
que podemos usar con PHP
, cabe destacar tres: NuSOAP, PEAR::SOAP y PHP SOAP
. Las tres nos permiten crear tanto un cliente como un servidor SOAP
, pero existen algunas características que las diferencias:
PHP SOAP
es la implementación de SOAP
que se incluye con PHP
a partir de la versión 5 del lenguaje. En versiones anteriores se tenía que recurrir a otras opciones para trabajar con SOAP
. Es una extensión nativa (escrita en lenguaje C) y por tanto más rápida que las otras posibilidades. Como veremos más adelante, su gran inconveniente es que no permite la generación automática del documento WSDL
una vez programado el servidor SOAP correspondiente.
NuSOAP
es un conjunto de clases programadas en PHP
que ofrecen muchas funcionalidades para utilizar SOAP
. Al contrario que PHP SOAP
, funcionan también con PHP4
, y además permite generar automáticamente el documento WSDL
correspondiente a un servicio web.
PEAR::SOAP
es un paquete PEAR
que permite utilizar SOAP
con PHP
a partir de su versión 4. Al igual que NuSOAP
, también está programado en PHP
.