- From: Larry Masinter <masinter@attlabs.att.com>
- Date: Fri, 2 Jun 2000 09:10:38 -0700
- To: <xml-uri@w3.org>
Namespaces aren't just any old resource. One of the properties of namespaces is that the definition of a namespace includes its namespace name. This means that there are many URIs that are *inappropriate* for use as namespace names, because they don't actually match the namespace name given in the namespace definition. For example, the definition for the namespace of XSLT at http://www.w3.org/TR/xslt#xslt-namespace says: "The XSLT namespace has the URI http://www.w3.org/1999/XSL/Transform." No other URI is appropriate for using with the XSLT namespace -- not even http://WWW.W3.ORG/1999/XSL/Transform (which differs only by the case of the host name). Because the namespace definition includes the namespace name, the set of URIs appropriate for use as namespace names is _defined_ such that the mapping from namespace name to namespace is 1-1. While in general one may have two different URIs that identify 'the same' resource (for some value of 'the same') this isn't true for URIs used appropriately as namespace names. I think people are getting twisted into knots because they're thinking that *any* URI can be used as a namespace name. But this isn't a good idea at all. Consider the following algorithm for definining a namespace: a) define most of the properties of the namespace, as well as you can b) assign a URI for the namespace that _potentially_ could reference the namespace c) attach the URI as the namespace name of the namespace d) publish the URI as the namespace name The result is a URI which is also a namespace name. By definition, two different URIs, if they're used as namespace names, identify different namespaces. Using "http://WWW.W3.ORG/1999/XSL/Transform" as a namespace name is just an error. Don't do it.
Received on Friday, 2 June 2000 12:11:00 UTC