Message SOAP
Un message SOAP est un fichier texte au format XML accessible donc à toute application construite pour l'accepter. Ainsi le service web est une 'application' ouverte à toutes les personnes qui peuvent/arrivent à y accéder (cf. partie sécurité).
Un service web basé sur SOAP nécessite donc l'envoi d'un fichier XML du genre:
<?xml version='1.0' ?>
<SOAPenv:Envelope
xmlns:SOAPenv="http://schemas.xmlSOAP.org/SOAP/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<SOAPenv:Body>
<req:getNumberOfArticles xmlns:req="http://daily-moon.com/CMS/">
<req:category>classifieds</req:category>
</req:getNumberOfArticles>
</SOAPenv:Body>
</SOAPenv:Envelope>
Ce message est envoyé d'un système à l'autre via HTTP. Le système recevant interprète le message, fait ce qu'il a à faire et renvoye la réponse dans un autre message SOAP.
Il existe d'autre forme de service web plus simple que l'envoi par message SOAP: REST (Representational State Transfer) et XML-RPC qui n'intègre pas des notions de sécurité, interoperabilité, …SOAP reste donc un meilleur choix pour des applications entreprise.
<env:Envelope xmlns:env="http://www.w3.org/2003/05/SOAP-envelope">
<env:Header>
</env:Header>
<env:Body>
<cms:getNumberOfArticles xmlns:cms="http://www.daily-moon.com/cms">
<cms:category>classifieds</cms:category>
<cms:subcategory>forsale</cms:subcategory>
</cms:getNumberOfArticles>
</env:Body>
</env:Envelope>
A noter qu'il y a deux préfixes différents qui correspondent à deux espaces de noms (namespace) différents (env et cms). Ils permettent de différencier l'enveloppe SOAP du contenu. L'enveloppe SOAP contient un en-tête (<env:Header>) et un corps (<env:Body).