[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: Versions in web services/schema namespaces
All, Following the issue raised yesterday by Gerard on versioning the namespace, below is a quick tour of some namespaces already out there: UDDI Types v2 (XSD): urn:uddi-org:api_v2 UDDI Inquiry v2 (WSDL): urn:uddi-org:inquiry_v2 UDDI Publication v2 (WSDL): urn:uddi-org:publication_v2 ebXML Messaging Service (XSD): http://www.oasis-open.org/committees/ebxml-msg/schema/msg-header-2_0.xsd UBL Datatypes v1Beta (XSD): urn:oasis:names:tc:ubl:DataTypes:1:0-beta WSSecurity SOAP message security v1.0 (XSD): http://www.docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd http://www.docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd That having been said, some of the older, more mature standards tend not to have versions in them. For example, take a look at this extract from the WSDL spec. Only the XML Schema namespace has any concept of version (based on time rather than a rev number). prefix namespace URI definition wsdl http://schemas.xmlsoap.org/wsdl/ WSDL namespace for WSDL framework. soap http://schemas.xmlsoap.org/wsdl/soap/ WSDL namespace for WSDL SOAP binding. http http://schemas.xmlsoap.org/wsdl/http/ WSDL namespace for WSDL HTTP GET & POST binding. mime http://schemas.xmlsoap.org/wsdl/mime/ WSDL namespace for WSDL MIME binding. soapenc http://schemas.xmlsoap.org/soap/encoding/ Encoding namespace as defined by SOAP 1.1 [8]. soapenv http://schemas.xmlsoap.org/soap/envelope/ Envelope namespace as defined by SOAP 1.1 [8]. xsi http://www.w3.org/2000/10/XMLSchema-instance Instance namespace as defined by XSD [10]. xsd http://www.w3.org/2000/10/XMLSchema Schema namespace as defined by XSD [10]. While this is by no means an exhaustive list, it does appear that the general practice, particularly for more recent specs, is to choose namespaces that have some element of versioning in them, either explicitly as a version, or implicitly as a date. Consequently, I would recommend that for our spec we use a namespace of the kind: urn:oasis:names:tc:wstrans:1:0:XXX Where XXX is the specific document being referenced. This is slightly different to the namespace that I used in my previous posts. (urn:oasis:names:tc:wstrans:v1:XXX). I appreciate Gerard's argument that it's going to make it a bit more difficult to implement, but in terms of reducing complexity of managing fully backwards compatibility and avoiding confusion as to which version is being used, it is a worthwhile tradeoff. As to the question of discovery of what specs are available, and what are provided by different service providers, I think that this issue can best be addressed through UDDI. As each subsequent version of the spec will have a different namespace (or set of namespaces to be precise), a UDDI query should be able to enumerate them. Then, given that each provider of the service, should also have one UDDI registry entry, for each version of the service that they provide, it is possible to identify the different versions of the service being offered by each provider. I haven't found an example of this yet, but if I do I'll post it here. Regards, Steve --------------------------------------------- Stephen Flinter Connect Global Solutions [t] +353 (0)1 882 9038 [f] +353 (0)1 882 9050 [m] +353 87 798 1228 [e] stephen.flinter@connectcgs.com [w] www.connectcgs.com --------------------------------------------
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]