xml:id checking

We considered whether xml:id attributes should be checked for
syntactic correctness and uniqueness.  3 obvious positions:

  "strict" 

   xml:id attributes must be checked in the way a validating parser
   checks ID attributes.  They must be normalized as IDs are, they
   must match NAME, and they must be different from any other xml:id
   and ID attributes.

   Non-validating processors can't do the last of these reliably,
   since they may not have seen all the ID attribute declarations.
   And non-validating processors will have the new burden of maintaining
   a table of IDs.

   "moderate"

   xml:id attributes must be normalized and checked for syntactic
   correctness (ie matching NAME).

   "lax"

   xml:id attributes are treated in the same way that a non-validating
   parser treats attributes which it knows to be of type ID.  It
   normalizes them as IDs, but does not check for syntactic correctness
   or uniqueness.  (NB a validating parser will make these checks
   anyway if the xml:id attribute is declared as being of type ID.)

Incidentally, I don't think we mention normalization at all in the
existing draft.  The existing text nonetheless requires xml:id
attributes to match NCName (why not NAME?) so xml:id=" foo " would be
an xml:id error!  We sh ould add normalization explicitly as an issue.

In favour of the "lax" position is the equivalence with an internal
subset that declares all the xml:id attributes as being of type ID.

On favour of the other positions is the opportunity to go further in
fixing the ID mess we currently have.

-- Richard

Received on Wednesday, 25 August 2004 16:18:24 UTC