Re: Options for dealing with IDs

At 20:10 2003 01 11 +0100, Chris Lilley wrote:

>On Saturday, January 11, 2003, 7:02:58 PM, Paul wrote:
>PG> At 20:02 2003 01 10 +0100, Chris Lilley wrote:
>>>I agree that the "what happens when DTD validation is performed" is
>>>still an issue that needs to be addressed. That might be as simple as
>>>saying "if you have an external or internal subset and you declare
>>>attributes to be of some other type than ID then interoperability will
>>>suffer so you should ensure, if you are wise, that the IDness is the
>>>same with and without DTD validation".
>>>
>>>Or we could try and say which wins (but I am fairly sure the DTD
>>>would win because of the ass-ba^H^H^H^H^H^H prior declaration wins
>>>design and the instance is read last. 
>
>Apologies for my aside about the first vs last declaration wins
>approach. I still think its non obvious, but I do understand it.
>
>PG> Suspecting that, by 'DTD' you mean external subset
>
>No, explicitly not.
>
>PG> and by 'instance'
>PG> you mean (as far as declarations go) the internal subset,
>
>Not that, either. I appreciate that these are common newbie errors and
>that your first thought may be that I have blundered into them; I have
>not.

Ah, my apologies then for misunderstanding you so badly.

Note that there is no such term as "instance" defined in XML 1.0.
The "document" (production [1]) includes the internal subset.
So note that one can define IDness in XML 1.0 within the document.
If we do decide to do an xml:id or xml:idAttr, I would like to hear 
a bit more discussion about why using the internal subset to define 
IDness within a standalone document has been decided against.

So I now understand you to be saying (using XML 1.0 terms) that
declarations in the DTD (aka doctype declaration, production 28)
take precedence of declarations within the "root or document element".

But of course there is no such thing as declarations within the
document element in XML 1.0.  I think this contributed to my confusion.
I realize we are talking about defining such a method, but since you
were talking about the fact that you didn't like which one wins, I
assumed you had to be talking about something that already exists,
since I don't see how we can know which one wins when discussing
something that doesn't yet exist.

>And by instance I mean the instance. The first declaration wins, in
>SGML and in XML. The internal subset is read before the external
>subset. The instance (the part after the internal subset if any) is
>read after that. So, any method of declaring IDness in the *instance*
>(which method does not exist in XML 1.0 but which most of the options
>listed here would add) then any declaration of IDness in the internal
>or external subset would come first in parsing order and would
>therefore be the winning declaration.

Well, that isn't clear.  I mean, given that there is no such concept of
a declaration within the "root or document element", then there really is 
no precedent in XML 1.0 for whether such a thing would take precedence 
over declarations made in the doctype declaration.

But I now understand your point to be that you're assuming the "first wins"
paradigm would be carried over to include any invented method for declaring
within the document element.

>I suggest you go back and read the starting post in this thread,

Re-read, you must mean.  I've certainly already read it.  And it included 
several options that had nothing to do with declaring IDness in the "instance"
(as well as several that did).  I'm still not convinced that we need to
declare IDness in within the document element when there exist ways to 
declare IDness within the document (internal subset) right now.

>entitled "Options for dealing with IDs" without which any discussion
>of declaring IDness in the *instance* (and I do mean the instance
>here) will not make much sense.
>
>I then invite you to comment on whether, in those options, the DTD
>declarations would win. I still assert it would, for the same reasons
>you clearly explained here.

As I said above, I don't see any way of deciding what would win in
the case that we allow something that has never been allowed before.
It seems to me we could define the answer to go either way.

paul

Received on Saturday, 11 January 2003 19:04:45 UTC