[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Namespaces best practice: managing dialect evolution --
Since namespaces associate a name with a language dialect, what is a best
practice for "evolving" that namespace when the language evolves?
One approach is to define a new namespace for an updated version of a
language, and use the namespace identifier as an indirect version
identifier. This is good, for example, if you want an application to stop
processing if it might not understand the new dialect.
Another approach is to use the same namespace for updated versions. This
is what XHTML 1.1 and (sort of) MathML do. This makes sense in a
loosely-typed model, where you'd rather have the application try
processing the data, even if it doesn't understand all the features of a
The former seems appropriate if the change represents a major change in
the language -- so that the semantics of the new verison are not simply
extensions on top of the previous one. COnversely the latter seems
sensible if the changes are simple extensions that make don't invalidiate
previous versions. This conclusion is less clear, however, if the XML
encodes a messaging protocol, since the message syntax may be unchanged in
the 'updated' version, while the overal contract between the two parties
may have been changed in a new specification.
So, there are strengths in both approaches -- but the real world probably
lies in between. Has anyone thought through this issue, and determined a
good strategy to follow?
Ian Graham .......................... http://www.utoronto.ca/ian/
i a n d o t g r a h a m a t u t o r o n t o d o t c a