Re: possible xml:id erratum [was: Agenda for XML Core WG telcon of 2009 May 6]

Grosso, Paul scripsit:

> > Richard, Norm, DV, John, HT had a vigorous discussion during
> > our telcon of April 22 that we did not complete.  We will need 
> > to continue this in email.
> 
> I see no reason to discuss this again this week unless we have
> had some prior discussion in email.

Well, okay, I'll try to give a precis of what I said, or what I think
I said.

The problematic sentence is:

    A document that uses xml:id attributes that have a declared type
    other than xs:ID will always generate xml:id errors.

I understand "declared type" in this context to mean "declared in a RELAX
NG schema".  If it refers solely to DTD declaration, then the sentence
is out of place and should be removed anyway.

Case I: xml:id processing is done before RELAX NG processing.

In this case, the xml:id processor has no access to the RELAX NG schema,
since RELAX NG processing has not yet been performed, and therefore
cannot report an xml:id error based on the sentence above.  By policy,
RELAX NG processors ignore attribute-type information in the incoming
infoset and use only the attribute type declarations in the schema.
Therefore, the RELAX NG processor is not in a position to report that
an xml:id attribute has some other declared type, because xml:id is not
special to RELAX NG processors (nor is any other attribute or element).

Case II: RELAX NG processing is done before xml:id processing.

In this case, the RELAX NG processor knows the declared type of any
xml:id attributes.  But since xml:id is not special to RELAX NG, it
will not complain if the declared type is something other than xsd:ID.
The xml:id processor does *not* know the declared type, because RELAX
NG does not augment the incoming infoset other than to add a global
validity indication for the whole document.  So the xml:id processor
also cannot report an xml:id error.

In both cases, then, there is nobody in a position to report the conflict,
and thus it's inappropriate to have a sentence which says something will
be done, when in fact it will not be done.

Okay, Henry, go ahead and pick this apart.

-- 
Long-short-short, long-short-short / Dactyls in dimeter,     John Cowan
Verse form with choriambs / (Masculine rhyme):           cowan@ccil.org
One sentence (two stanzas) / Hexasyllabically
Challenges poets who / Don't have the time.     --robison who's at texas dot net

Received on Monday, 4 May 2009 20:27:36 UTC