There's a little debate going on between Simon Fell, of
PocketSOAP, TcpTrace and of course salesforce.com, and Sanjiva
Weerawarana, of WS02 and the WSDL specification.
Simon explains
that the reason for returning an ID twice is related to the object
model of the XSD, and goes on to fault the WSDL to Source tool
chain for being differently quirky on every version.
Sanjiva blames
Salesforce and believes that someone took a nasty class
hierarchy and auto generated XML Schema and WSDL out of it
I don't know. I agree salesforce.com's endpoint has a bit of an
object model, but then XSD has an object model, just a different
one from current OO programming languages
I do agree with both Simon and Sanjiva on one thing: the way
most tools go from WSDL to native code bindings sucks.
Sanjiva thinks that Simon should stop coding that way, but here
is the problem: Simon isn't the one doing the coding. Salesforce
provides a SOAP API, one of the most popular on the big net, and he
has to deal with all the SOAP stacks, from .NET1.0 and Apache SOAP
right up to .NET 3.0 and Axis 2 1.0 (no, I dont understand that
versioning either). Simon gets to field the support calls from all
the tools out there, as well as ones related to the unusability of
WSDL, and the fact that most SOAP service dev teams can't read or
write it very well. Of course he blames the tools.
Me, I blame WSDL and XSD. The nicest thing on that front this
week is Arjen's
XSD to create WSDL From XSD. Now, if we could use annotation
attributes in the XSD to tune the WSDL, we'd have something really,
really, interesting.
Now playing: Future Proof, Massive Attack