The ENTITY and QName datatypes are similar in that their lexical space
both contain names that are interpreted relative to a context containing
a set of declarations.  For QName, the context is an element containing
namespace declarations; for ENTITY, the context is a document containing
unparsed entity declarations. Yet the value spaces are handled
inconsistently.  For QName, the value space contains not the prefix, but
the namespace URI to which it is bound by the declaration.  However, for
ENTITY, the value space contains not the entity to which the entity name
is bound, but the original string.  This makes a significant difference
when you start to manipulate or programatically construct values (eg in
XML Query or XSLT).  I believe QName has it right, and that the value
space of ENTITY should be a set of Entity Declaration information items
one for each unparsed entity declared in the document.  Similarly, the
value space of NOTATION should be a set of Notation info items declared
in the Schema, and the value space of IDREF should be the set of all the
Element info items in the document that have an ID attribute.


Received on Monday, 16 October 2000 23:31:56 UTC