W3C home > Mailing lists > Public > xml-uri@w3.org > May 2000

Ignore that - Re: Attribute uniqueness test: a radical proposal

From: Tim Berners-Lee <timbl@w3.org>
Date: Tue, 30 May 2000 09:26:32 -0400
Message-ID: <00e401bfca3a$ab8ece40$a60a1712@col.w3.org>
To: "Tim Berners-Lee" <timbl@w3.org>, "David Carlisle" <david@dcarlisle.demon.co.uk>, <abrahams@acm.org>
Cc: <XML-uri@w3.org>
Ignore the last message Finger trouble turned a paste into a send.

-----Original Message-----
From: Tim Berners-Lee <timbl@w3.org>
To: David Carlisle <david@dcarlisle.demon.co.uk>; abrahams@acm.org
Cc: XML-uri@w3.org <XML-uri@w3.org>
Date: Tuesday, May 30, 2000 9:23 AM
Subject: Re: Attribute uniqueness test: a radical proposal

>-----Original Message-----
>From: David Carlisle <david@dcarlisle.demon.co.uk>
>>The only place where comparison is explictly mentioned in the document
>>is in the attribute test but that is because the rec has to define
>>namespace conforming documents and that test is required so that
>>documents after being parsed conform to the well formed constraint
>>unique att spec of XML 1.0. Other places where comparison of names
>>occurs in XML 1.0 (eg that start and end tags have same name) is
>>covered in XML namespaces by reference to XML 1.0.
>>XML namespaces does not try to change the underlying document model
>>of XML 1.0 which is that elements are essentially ordered, and
>>attributes are essentially unordered, and thus need to be specified at
>>most once on any given element. The only difference is that where
>>XML names are a flat string, XML Namespace names are a structured pair
>>consisting of a namespace name and a local name. The prefix syntax
>>is just  some surface syntax (the rec calls it  a proxy) to get round
>>the fact that you can't have a notation which makes the structured
>>name explicit in XML 1.0 conforming syntax.
>>So if x: and y: are bound to the same namespace  x:x="1" and y:x="2"
>>are two settings of the same attribute to different values. It makes
>>no more sense than saying that you should allow
>>x="1" and x='2' in the same element start tag, as they use different
>>quote forms so can be distinguished.
>>Certainly in my own namespace processor, if the namespace rec was
>>changed to drop this restriction that an attribute could appear more
>>than once I would have to completely re-write it, it is built
>>assuming that an attribute only is used once (and it really doesn't
>>keep the prefix information, that is lost at the same time that
>>the " ' distinction or white space around the = is lost.
>>If x: and y: were bound to a namespace in the document and z: was
>>bound to the same namespace in the stylesheet
>>then given
>><xxxx  x:x="1" and y:x="2"/>
>>in the document what would you want
>><xsl:value-of xxxx/@z:x />
>>to be?
>>> Can you give an example showing how a
>>> document that is well-formed according to the modified uniqueness test
>>> is turned into a document that is not well-formed?
>>Yes, the above document, to a namespace parser has the same element
>>attribute structure as
>><xxxx  x:x="1" and x:x="2"/>
>>but this isn't well formed XML.
>>While namespaces were being discussed on xml-dev there were proposals
>>that already at the level of sax it would be the case that the
>>prefix info was dropped. In fact a sax2 parser will keep some other
>>information about names, and about entity references and other stuff
>>but that is essentially extra info not forced by the model.
>>As I say, if x: and y: are bound to the same prefix then my own system
>>will produce exactly the same internal structure for these two
>><xxxx  x:x="1" and y:x="2"/>
>><xxxx  x:x="1" and x:x="2"/>
>>which actually is unspecified behaviour since the second isn't well
>>formed XML.
>>>  there may still be a conflict because of an
>>> undetected equivalence.
>>The namespace rec is explictly written so that undetected equivalence
>>can not occur. Any change to the rec that changes this is completely
>>utterly broken.
>>If I need to define two namespaces to use in some document then I can use
>>it is _not_ at the liberty of some consumer of the document to decide
>>that it understands DNS names and URI scheme sufficiently that it
>>can decide the namespaces are equivalent. If I'd wanted to use the
>>same namespace in both cases, I would have done so. The fact that
>>I pay to have that URI name work means that I can generate 2^30
>>or so similar namespace names if I so wish, and none of them will
>>(or should) clash with anyone else's namespace names.
>>> I cut the knot by saying that the namespace spec should be silent on the
>>> subject,
>>How can it be silent on the subject that it says is its only reason
>>for existence?
Received on Tuesday, 30 May 2000 09:25:20 UTC

This archive was generated by hypermail 2.4.0 : Friday, 17 January 2020 23:13:59 UTC