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).