[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: using namespaces to version
- From: Mike_Leditschke@nemmco.com.au
- To: email@example.com
- Date: Thu, 03 May 2001 12:01:21 +1000
I don't think there is any clear position on this. You only have
to survey the various W3C specs to see the authors using different
SVG in Appendix F.3 talks of using the namespace to detect
different versions of SVG
XSLT use a single namespace and a version attribute, together with
a detailed forward compatibility strategy.
My problem with version attributes comes when you want to validate
an instance via an XML Schema prior to processing. To determine
the schema to use, I potentially need the version attribute, but the
attribute is part of the data I'm trying to validate.
The XML Schema spec in section 4.3.2 describes the namespace of the
document element as the starting point for determining the actual schema to
use. Depending on the strategy employed by your schema
processor, the namespace _MAY_ be the only thing allowing a
selection between versions.
I accept there are various strategies to allow the namespace to remain
constant (backwards compatible schemas etc), but I can envisage situations
where perhaps one element out of many needs to be changed such that
backwards compatibility is not possible, but the semantics of the remainder
are still the same. Creating a new element with a different name to cover
and hence keep a single namespace to me introduces ambiguity or ends
with element names incorporating version information which isn't nice
In the project I am working on, we hedged our bets and used both a version
identifier in the namespace and version attributes on key elements.
The thinking was that once the industry got to a defacto standard position,
we could drop the one we didn't need.
Carlisle To: firstname.lastname@example.org
<email@example.com cc: firstname.lastname@example.org
o.uk> Subject: Re: using namespaces to version
> I'm wondering if anyone on the list has any strong opinions about
> the use of namespaces for versioning.
I think it's a bad idea: To a namespace aware processor if you
change the namespace then you change the effective name of every
construct in the language.
It seems to me that two languages with no names in common are not
versions of each other but rather two different languages.
Thus (to use the example you gave) any language that can reasonably be
called a version of MathML ought use the MathML namespace. If some
future language is sufficiently different that it is no longer MathML
version n but rather NewSuperMathML version 1 then it should have a new
namespace but as a consequence it will share no elements in common with
MathML and all existing XPath queries into MathML structure (for
example) will not apply to this namespace.
This argument was of course at the heart of the "p is a p is a p"
debate over three (or as it thankfully turned out, one) namespaces for
This message has been checked for all known viruses by Star Internet
delivered through the MessageLabs Virus Scanning Service. For further
information visit http://www.star.net.uk/stats.asp
The xml-dev list is sponsored by XML.org, an initiative of OASIS
The list archives are at http://lists.xml.org/archives/xml-dev/
To unsubscribe from this elist send a message with the single word
"unsubscribe" in the body to: email@example.com