From the TAG document: Further, it must be observed that some things are identified by QNames: element and attribute names, types in W3C XML Schema, etc. QNames are macros, similar in kind to entity declarations. A QName serves to indicate the part of XML document that can be targeted by something that understands and can expand XML Namespaces. Technically, macro processing is needed for XML namespaces - since XML can't support URIs as element names, we instead use the pair of Namespace Prefix and Local Name to tunnel the Universal Name through the markup. The Universal Name is James Clark's terminology; in the abstract that's the tuple {NamespaceURI, ElementName}. It's the Universal Name that identifies, not the QName. Using QNames as identifiers is muddled thinking, not something to be encouraged. Mark Nottingham is right - QNames in content are evil....