RE: Dereferencing Namespace URIs considered harmful
Date: Wed, 17 Jan 2001 16:01:05 -0500
I am aware that there has been much discussion on this topic,
and perhaps more discussion could be construed as flogging
a dead horse. If someone has already covered my particular point of
view, I apologize and recommend ignoring this email. I am a new
member of this listserv and just couldn't afford the time to read
through all the archives.
I feel that, in considering the possibility of dereferencing Namespace
URIs, those folks who support this position are perhaps not considering
the primary rationale behind a namespace URI, namely, it's one part of
a two-part name (to use James Clarke's notation):
As I understand the situation, the URI format was chosen because of its
somewhat globally-unique nature, and not because of any specific
properties of a real-world URI. A GUID or UUID could equally-well
have been chosen (albeit with a leading underscore to comply with
XML naming rules).
Someone could have (and probably did) suggest having a namespace
based on UUIDs:
Not very readable, but certainly functionally identical to a namespace
using URIs. This two-part name is certainly globally unique, and due
to the method of generating UUIDs, no special central registry need be
kept to avoid name clashes.
But that.'s not the point, really.
I feel that dereferencing part of a two-part name because of
its accidental resemblance to something that exists outside of the
context of that name is tantamount to the old mistake of "overloading"
part of a database key to mean something else. As an example, I am
reminded of a telephone company that assigned special meaning to
the high-order digits of a subscriber's account number, on the assumption
that there would never be that many subscribers. Of course, the fateful day
arrived where the number of subscribers reached critical mass, and
suddenly people found themselves getting huge discounts on their phone
bills, simply because their account numbers had fallen into the previously
reserved range. Fixing the problem proved very troublesome.
Although the Namespace URI issue is not quite the same kind of problem,
I believe the general rule of separation of concerns applies here, and that
namespace URIs should be treated the same way as UUIDs: a unique
identifier that has no special meaning outside of the mnemonic value
afforded to humans. Failing to do this could have negative ramifications
that are hard to predict. On the other hand, steering clear of this will guarantee
a lack of negative consequences (at least, connected to this issue).