Contradictory definitions of ``qualified name''

I am troubled by the use of the term ``qualified name'' in the W3C
Namespace specification.  In the second-to-last paragraph of Sec. 1, it
says:

"Names from XML namespaces may appear as qualified names, which contain
a single colon, separating the name into a namespace prefix and a local
part."

Since the ``which'' clause is nonrestrictive, the sentence implies that
a qualified name must contain exactly one colon.  But the syntactic
definitions in Sec. 3 state that a qualified name consists of an
optional prefix followed by a local part, thus implying that a qualified

name must contain at most one colon.   There's a contradiction here.

The real problem is that using the term ``qualified name'' to refer to a

simple name, i.e., one without colons, is misleading.  It's rather like
announcing that ``henceforth in this document, when we use the word
`gray' we mean the color white''.  One can read a document that way, but

it's not easy---even though you can argue that white is just the
lightest possible shade of gray.  This misleading terminology propagates

to other specs too, such as the XSLT spec.

I believe that a much better treatment of the terminology would be to
use the nonterminal `EAName'' (element or attribute name) in the syntax
equations instead of QName, and in the text to use the term ``name''
rather than ``qualified name'' to mean an EAName.  After all, a name
that is constrained to be an EAName is still a name.  I recognize that
there are certain other uses of names in the XML spec, such as in
processing instructions and notation types, but placing the
one-colon-max restriction on names used as EANames would not contradict
anything said about them.  Also, using ``simple name'' to refer to an
NCName would provide a useful common noun, much as ``qualified name''
was intended to be a common noun denoting QNames.

Another loose end that needs to be tied up is the statement in the XML
spec (the note in Sec. 2.3) that the colon within XML names is reserved
for experimentation with name spaces (not namespaces!!).  Given the
content of the Namespace spec, there seems to be no reason even to imply

that uses of names other than as element or attribute names need to
treat the colon specially.

Paul Abrahams
abrahams@acm.org

Received on Wednesday, 4 August 1999 12:32:07 UTC