- From: Tim Bray <tbray@textuality.com>
- Date: Wed, 11 Sep 2002 15:00:06 -0700
- To: "Anthony B. Coates" <abcoates@TheOffice.net>
- Cc: www-tag <www-tag@w3.org>
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