Re: How to Version XML Applications

Anthony B. Coates wrote:

> The problem is, how do you avoid using namespaces for versioning?

Mechanically not a problem; Norm has pointed out one way.

I think it's worth investing a bit more verbiage in explaining why 
versioning with namespaces is generally a bad idea.  A namespace name is 
not just a label off to the side somewhere that applies to a whole 
language, it becomes part of the name of each element & attribute in the 
language.  So if you were going to version XHTML this way, you'd end up 
up with <xhtml1:p>, <xhtml2:p>, and so on.  As someone has pointed out, 
this is effectively the same as changing the name from "<foo>" to 
"<bar>".  So:

(a) In general, it's probably a really bad idea to change the semantics 
of all the elements in a language when you rev the version, and
(b) If you haven't changed the semantics of something, it's generally a 
good idea not to change its name.

I expect that in general, the HTML-ness of the "img" element, or the 
SVG-ness of the "arc" element, XBRL-ness of the "notesPayable", will 
survive across versions and thus their names shouldn't change.

When you have a new namespace, I think you have a new language.

Hmm, what would the TAG think of something in webarch saying: 
"Versioning presents a complex set of issues where technical 
requirements vary significantly from application to application. 
Designers of languages SHOULD invest real effort in determining their 
versioning requirements and how to address them.  For XML-based 
languages, designers in general SHOULD NOT embed versioning information 
in namespace names."  -Tim

Received on Wednesday, 11 September 2002 18:00:05 UTC