Versioning Namespaces

Gee, Namespaces are versioned all of the time without breaking any existing code.  I didn't mean to suggest obsolescing anything, only that it is useful to speak in a way where a new URI might be usable for a *later* namespace.  The existing namespace URI would still work, and refer to the current namespace.  A future namespace might have the current one as a proper subset and that would work too, even though there is a different URI for it.

I realize that there are DAV headers for this, as part of feature coordination and leveling, It is often handy to also rev the namespace for anything specific to the use of XML.  For example, with the SOAP XML binding to HTTP, a closer analog to WebDAV, I would think, the SOAP 1.2 Recommendation establishes a different namespace than is used for the SOAP 1.1 level, and the SOAP 1.2 specification deals with how to deal properly with SOAP 1.1 as a legacy.  This supports the versioning of XML Schema definitions too, since XML Schema definitions tend to be targeted to specific namespaces.

So I wasn't anticipating any kind of versioning of namespace URIs that would break compatibility with or even usage of the current specification.  I see it as keeping a namespace stable and known, whether or not it is a proper subset of a future one.

Namespace versions will already have to be dealt with when properties, for example, are taken from other XML-mapped vocabularies, such as Dublin Core, which has a specific namespace for its current 1.1 level of element definitions.  Something like that will doubtless happen with RDF, if it isn't underway already in Friday's Last-Call Working Draft documents.

Having said that, I am not wedded to the idea. I was just suggesting a way of speaking that would allow for specific-namespace versioning with minimal editorial impact in future revisions of the DAV specification.  I assume that 2518bis is far enough along that one would not want to mess with it.  In any case, it is an editorial nuance, nothing substantive.

I do think of namespace versioning as a key provision for preservation of interoperability over time, like versioning COM interfaces (and their UUIDs), and never changing them.  Or providing for versioning in Java package names.  Or even like W3C specification URLs where you can refer to a specific edition or simply the current latest of the progression.

-- Dennis

-----Original Message-----
From: Julian Reschke [mailto:julian.reschke@gmx.de]
Sent: Saturday, October 11, 2003 04:04
To: dennis.hamilton@acm.org; w3c-dist-auth@w3.org
Subject: RE: How to use DTDs, or not to (was: RE: ACL and lockdiscovery)


Comments inline...

> From: w3c-dist-auth-request@w3.org
> [mailto:w3c-dist-auth-request@w3.org]On Behalf Of Dennis E. Hamilton
> Sent: Friday, October 10, 2003 10:45 PM
> To: Julian Reschke; Lisa Dusseault; 'Geoffrey M Clemm';
> w3c-dist-auth@w3.org
> Subject: RE: How to use DTDs, or not to (was: RE: ACL and lockdiscovery)
>
> ..
>
> 1.1	I find it better to refer to the "DAV namespace" or "DAV
> namespace URI" rather than the "DAV: namespace" especially
> because namespaces are often versioned (rather than revised [;<),
> so the identification in XML will be with different URIs over
> time.  Ditto for the lock-token namespace.
> ..

Well. There are no plans to change the namespace URI for DAV:. Doing that
would be an incompatible change breaking all existing code (see for instance
how XSLT deals with versioning).

[ ... ]

Received on Sunday, 12 October 2003 02:21:02 UTC