While reading a few books/blogs, I understand that SOAP API versioning can be achieved by appending the version number in the targetnamespace (see below example). Assuming previously targetnamespace contains value "..../v1" and now I publish wsdl with "../v2". In this case, will my old consumer(s) able to access the web service without updating the wsdl file?
I understand that targetnamespace is the logical namespace only. I have performed some test using SOAP UI client and its working perfectly fine if my consumer using different targetnamespace than published by web service.
Then how versioning will work? What is the use of targetnamespace then? Kindly let me know the best way of SOAP API versioning.
<wsdl:definitions xmlns:s="http://www.w3.org/2001/XMLSchema"
xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/"
xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"
xmlns:tns="**http://www.mycompany.com/webservices/v2**"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/"
xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
targetNamespace="**http://www.mycompany.com/webservices/v2**"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
<wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">WebService provides stock exchange information.
</wsdl:documentation>