- From: David Orchard <orchard@pacificspirit.com>
- Date: Wed, 20 Sep 2000 20:12:24 -0700
- To: <xml-dist-app@w3.org>
The meaning of a URI in namespaces is very clear. Let's garner some evidence: From Ronald Bourret's excellent namespaces FAQ at http://www.rpbourret.com/xml/NamespacesFAQ.htm#q12_1 "12.1) What is an XML namespace URI? An XML namespace URI is a URI that uniquely identifies the namespace. URIs are used because they are widely understood and well documented. Because people may only allocate URIs under their control, it is easy to ensure that no two XML namespaces are identified by the same URI. 12.2) What does an XML namespace URI point to? An XML namespace URI is simply an identifier. It is not guaranteed to point to anything and, in general, it is a bad idea to assume that it does. This point causes a lot of confusion, so we'll repeat it here: XML NAMESPACE URIs ARE JUST IDENTIFIERS. THEY ARE NOT GUARANTEED TO POINT TO ANYTHING. An early version of the W3C's XML Schemas used XML namespace URIs to point to an XML Schema document containing the definitions of the element types and attributes named in the namespace. However, this proved very controversial and the idea has been withdrawn. " From David Megginson's 19 short questions on namespaces at http://www.megginson.com/docs/namespaces/namespace-questions.html " [Q] What does the namespace URI http://www.foo.com/ mean? [A] It has no defined meaning. " From Tim Bray's XML Namespaces by example at http://www.xml.com/xml/pub/1999/01/namespaces.html "What Do Namespace Names Point At? One of the confusing things about all this is that namespace names are URLs; it's easy to assume that since they're Web addresses, they must be the address of something. They're not; these are URLs, but the namespace draft doesn't care what (if anything) they point at. Think about the example of the XML.com programmer looking for book titles; that works fine without the namespace name pointing at anything. The reason that the W3C decided to use URLs as namespace names is that they contain domain names (e.g. www.xml.com), which work globally across the Internet. " I hope that sufficiently stresses the point that namespaces spec does indeed define (to be nothing) what a URI is in it's context. And further why URIs were selected - the use of domain names. As for identity being defined by URI spec RFC 2396, that's not true. Do URIs "http://www.mysite.org" and "http://www.mysite.org/index.html" have the same identity or not? You don't know from the URI. Nor do you know based upon fetching the URIs and comparing the documents - the classic compare by reference or compare by value problem. Nor can you ask a server whether the 2 strings are semantically the same. The web does not define an equality test that most type systems do define. Further, there is NO canonical representation of URIs, so there can't be identity comparison. This still a very real problem with namespaces because you don't know whether "http://www.mysite.org" or "http://WWW.MYSITE.ORG" are equivalent as namespaces says just do character equivalence without any canonicalization. BTW, it's also a problem with XInclude loops. There are many great xml-dev and xml-link discussions from last year and before that extensively talk about identity versus location versus URIs. Paul Prescod was a particularly eloquent speaker on the topic. Cheers, Dave Orchard -----Original Message----- From: Henrik Frystyk Nielsen [mailto:frystyk@microsoft.com] Sent: Wednesday, September 20, 2000 7:08 PM To: David Orchard; Rick JELLIFFE; xml-dist-app@w3.org Subject: RE: Schematron schema for SOAP 1.1 Envelopes > Your point #1 is incorrect. Same with #2. A namespace > identifier is a URI > so that the namespace can be guaranteed unique across a > namespace. Stop saying that a URI means different things in different places. A URI is a URI is a URI - full stop. Your interpretation of #1 and #2 are your personal view of what people might want to use URIs for but it is not for you (or me) to decide whether people want to dereference or not. > The > definer of a namespace will probably pick a URI as it's > dependent upon DNS > which is dependent upon IP, so there is some guarantee of uniqueness. > Indeed, the namespace 1.0 spec as written allows you to put > any characters > in there, URI or not. It actually is pretty clear on that it is a URI. > It's careless to make an assumption - namespaces are URIs for > the purpose of > fetching schemas - and then claim it as fact. It has never > been the intent > that applications can do a GET on the namespace URI to fetch a schema. I didn't claim that you are guaranteed a schema - I said might - just as well as you might get HTML back when you go to some website. This is what the NS spec states - you might or you might not. The same thing goes with schemaLocation - you are not guaranteed a schema - that's just life. It certainly does not state that "it has never been the intent...". > Eventually, there will be a packaging specification that > deals with all the > relevant information for a document - schemas, xslt, xinclude targets, > xlinks, xlink targets, gifs, .... Then there can be a mechanism for > retrieving the related documents. But it's very much not a > namespace issue. > The W3C has done an excellent job of not coflating identity > with packaging > with location. It has done a terrible job of defining identity. It is sufficiently defined by the URI spec RFC 2396. Henrik
Received on Wednesday, 20 September 2000 23:10:56 UTC