typo/bug in the namespace spec? [was: Mechanism, not policy...]

David Carlisle wrote:
> 
> > Yes, I do wish it were so, and I sincerely hope we will remove
> > the typo from the namespace spec that says otherwise.
> 
> There is a difference (even if you work at the W3C) between
> "things you don't like"
> and
> "typos" or "bugs" or other such phrases.
> 
> It is not a typo.

Argument by assertion is no fun... Here's the
argument by which I conclude that it's a typo:

From March to September 1998, the spec said:

	"This draft specification is a work in progress representing the
	current consensus of the W3C XML Working Group."

	"[Definition:] The SystemLiteral in the NSDef production is a
	URI which functions as a namespace name to identify the namespace."

	-- http://www.w3.org/TR/1998/WD-xml-names-19980916
	-- http://www.w3.org/TR/1998/WD-xml-names-19980802
	-- http://www.w3.org/TR/1998/WD-xml-names-19980518
	-- http://www.w3.org/TR/1998/WD-xml-names-19980327

So for a long time, the WG agreed that a namespace name was a URI.

Then, the issue of #fragment-ids in namespace names was discussed
by the WG. It was agreed that they should be allowed. Though
we did *not* decide to also allow relative URI references,
the next draft said:

	[Definition:] The attribute's value, a URI reference, is the namespace
	name identifying the namespace.

	-- http://www.w3.org/TR/1998/PR-xml-names-19981117


James Clark asked some clarifying questions about it soon after.
See his earlier post in this forum:

	"I don't know why the editors chose not to do anything about it.
	The XML WG never made a decision to allow relative URIs."
	http://lists.w3.org/Archives/Public/xml-uri/2000May/0218.html

> it is built into the entire model of namespace
> processing.

I disagree.

> > Just change
> >       ns_name = elem.getattr('xmlns')
> > to
> >       ns_name = urlparse.urljoin(baseURI, elem.getattr('xmlns'))
> > in the implementations, and that's it.
> 
> that (in the cases where there is a base) implements the absolute
> option.

Yes.

> (and breaks any rational model for what an XML document is)

I disagree. If you have any justification for this claim,
I'm interested to see it.

> It does not make any resource whose identifier I use as a namespace
> name into a namespace,

Again, it seems entirely tautological that if
	a URI i identifies a resource R
and
	that URI i is also the namespace name of a namespace N
then N=R; hence R is a namespace.
That's what "identifier" and "name" mean, no?


> and it does not make any namespace system
> work on that basis.

Yes, it does.

> To name a namespace you take a URI reference (or with the forbid
> option a URI + fragment id) any URI will do,

Hang on... do you mean URI reference, or URI? This is the essential
distinction... URI references denote URIs, and URIs identify
resources.

> but if you want to choose
> a unique name you pick the URI of a resource you control (or could
> control).
> 
> The resource identified by the URI (if any exists)

one always exists, by definition/nature.

> is of absolutely no
> consequence to a namespace parser.

I agree that namespace processing per se is done just with namespace
names, and that the namespaces themselves are formally
irrelevant at that level. I think the title of the spec is
pretty unfortunate. I think it should have been called "shared names
in XML" or something, since it really doesn't specify anything
about namespaces themselves... just about names that are shared
between XML documents by way of the use of the same URI.

-- 
Dan Connolly, W3C http://www.w3.org/People/Connolly/

Received on Thursday, 8 June 2000 11:50:12 UTC