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
>http://www.dcarlisle.demon.co.uk
>and
>HTTP://WWW.DCARLISLE.DEMON.CO.UK
>
>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?
>
>David
>

Received on Tuesday, 30 May 2000 09:22:29 UTC