RE: Schematron schema for SOAP 1.1 Envelopes

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