Versioning of XML Schema and namespaces

Hi,

I have a few concerns about versions of XML Schemas and access to them via
namespaces.

I think that we can all agree that one of the great things about XML and the
associated Schema Languages or eXtensible Schema Definitions (XSD) is that
the XSD can be used to validate an XML document instance.  That is, if
someone says that this XML document instance is valid against a particular
standard the validity of that XML document can be *proven* by validation
against the XSD identified in the XML document instance.  Otherwise, one has
to take someones word that the XML is valid.

I have dealt a lot with PUBLIC identifiers in Document Type Definitions
(DTD).  XML document instances use the PUBLIC identifier in the "DOCTYPE"
declaration to determine which DTD should be used to validate this XML
document instance.  The URI in the DOCTYPE declaration is to help locate the
DTD if there isn't one in one's local OASIS Catalog file.  I use this method
to validate about 40,000 XML document instances every quarter of a year and
it is very effective.  If someone has written a new DTD or a new version of
the same DTD to which their XML document instances refer I can determine this
by the new PUBLIC identifier.  Versions are part of the PUBLIC identifier and
hence it will be different to the list of PUBLIC identifiers that I have in
my OASIS Catalog file.  I can then look for the new DTD, add it to my file
system and reference that local copy in my OASIS Catalog file.  No changes
are made to the DTDs unless they are reflected in the PUBLIC identifier.
That is, the PUBLIC identifier is *always* unique even between different
versions of the same DTD.

I expect that document instances using W3C XML Schemas will use a "namespace"
declaration to identify which XML Schema should be used to validate that
document instance.  The problem that I see with the namespace it that a URI
is the unique identifier.  There is no PUBLIC identifier.  As we have all
probably experienced with old bookmarks, the content at URLs change a lot.
If an XML Schema's version is not part of the URI and a new version of that
XML Schema is made then it is likely that this will *not* be reflected in the
URI and hence the namespace.  This means that if someone downloads that new
version of the XML Schema they may find that all of the 40,000 XML document
instances are now invalid whereas I, relying on my local copy of the XML
Schema and unaware of the new version will disagree with that other person's
findings.

This is a major dilemma.  How can changes to the XML Schemas be *guaranteed*
to show up in the namespace's URI?

John Hockaday
Geoscience Australia
GPO Box 378
Canberra ACT 2601
(02) 6249 9735
http://www.ga.gov.au/ 
john.hockaday\@ga.gov.au

Received on Wednesday, 4 May 2005 07:16:41 UTC