Actually "SOAP" is just "A".
There is no object orientation, no protocol and least but not last no "simple" in it.
Just like xml the basic idea was nice and KISS. And it was called xml-rpc, and it was a bit less flexible one could wish if a fairy is asking. Regrettably the fairy was on holiday, so microsoft and some other guys misunderstood that they were meant.
And they implemented a simple protocol with all the bells and whistles that XML offers you on its way to become SGML again.
To keep a bit of simplicity left, they set the object orientation aside.
But there was enough complexity left for everyone: wsdl, namespaces, uddi and the like.
That added the flexiblity that makes perl, mod_rewrite or sendmail hard to maintain to SOAP: there are more than 100 ways to do everything – that means for example 10 ways to define a complex type in wsdl and 10 ways to create some soap xml transmission for each definition.
And there we are:
- DOTNET Supports 4 wsdl ways and 2 soap ways.
- PEAR::Soap supports 3 wsdl ways and 4 soap ways.
- gsoap supports 5 wsdl ways and 1 soap way
- delphi::soap 6 wsdl ways and 5 soap ways
So you have to create a wsdl definition everybody understands, and for every server/ client a soap format that they get either.
So if you do soap with different platforms – and that is what is intended for – have some soap-tolerating bablefish at your fingertips.
Or simply reverse engineer the kind of soap/wsdl googles uses, just like we did.