I'm using Web services out of Apache SOAP toolbox.
I think there's a lack of transformation capabilities for things such as keeping compatibility whith an old version of a web service in the SOAP toolbox.
For example :
I'm creating the Web service named
This web service uses as a return object the XML type named :
A client of my web service would want some modification to include let's say the creation date of the contract.
So, I'm modifying my contract.
The new contract object will be called :
And so, the web service must change (the contract type name has changed), and I call it
But I have only one version of my service implementation the last one.
So here are the transformation possibilitites :
1. create a javabean which will handle the transformations and handle service implementation call. This javabean will use the old service definition.
=> yurks => horrible !!! and I should surely create my custom serializer instead of an automatic mapping (see BeanSerializer).
2. create a custom serializer for Apache, which will handle the old service transformation.
3. create an XSL stylesheet to handle transformation.
This sounds ok, but : I have (or Apache has) to deserialize the XML to know which service is called, call the correct handler (say XSLHandler), and this handler will then apply xsl transformation, recall Apache, etc ...
Ok, for optimisation, I can go and work directly perhaps with the Apache implementation, but how long will my code last ???
Another problem : programmers are more used to Java than to XSL, and I think they should continue to use Java.
So, I would want for solution 3 to have a graphical viewer which will handle the XSL mapping configuration.
Some tools such as WSAD handle this, but I'm not sure they can be used in Web Service, since they use a Schema definition, and with Web service, we can use multiple Schema definition (i.e. SOAP Schema for enveloppe, body, etc ..., mine for the business data, perhaps another one for technical data in the header, etc ...).
Are there free tools for solution 3 ?
I should say yes (how can anyone use web service in a production quality environment without them ?).