As a member of the WG, I have been involved. I have agreed on colonization,
and have always believed that colonization provides a good basis for
the namespace extension. Now that we have local scoping and declaration by
attributes, I start to wonder. (Skip the rest of this message if you
do not want to hear.)
Historically, we have always assumed that it should be possible to
validate an XML document with namespaces with validating parsers of XML 1.0.
This is not the case, any more. Since the same prefix can be bound to
different namespaces, it is no longer possible to construct an equivalent
XML 1.0 DTD from a collection of namespace-schema pairs. Then, what is
the point of using prefixes? In my understanding, one reason that we
chose colonization rather than reserved attributes is validation by XML 1.0
parsers. This reason no longer exists. (Note: The other reason was
qualification of attributes.)
Declaration of namespaces are inherited. But we also want to have
inheritance of prefixes in the future. That is, we would like an
element to inherit prefixes from superior elements. Thus, we will
have complicated interaction of two types of inheritance. For example,
it will become possible for an element to inherit a prefix and not to
inherit a namespace dcl. One could argue that these two should always
be in sync, but then what is the point of having the two? It would have
been a lot simpler if we had introduced a reserved attribute for specifying
the namespace of the element.
Makoto
Fuji Xerox Information Systems
Tel: +81-44-812-7230 Fax: +81-44-812-7231
E-mail: murata@apsdc.ksp.fujixerox.co.jp