QName
A QName, or qualified name, is the fully [qualified name] of an element, attribute, or identifier in an XML document. A QName concisely associates the URI of an XML namespace with the local name of an element, attribute, or identifier in that namespace. To make this association, the QName assigns the local name a prefix that corresponds to its namespace. In all, the QName comprises the URI of the XML namespace, the prefix, and the local name.
The World Wide Web Consortium introduced the QName convention in the 1999 specification "Namespaces in XML".
Purpose
Since URI references can be long and may contain prohibited characters for element/attribute naming, QNames are used to create a mapping between the URI and a namespace prefix. The mapping enables the abbreviation of URIs, therefore it achieves a more convenient way to write XML documents.Formal definition
QNames are formally defined by the W3C as:QName ::= PrefixedName | UnprefixedName
PrefixedName ::= Prefix ':' LocalPart
UnprefixedName ::= LocalPart
Prefix ::= NCName
LocalPart ::= NCName
NCName is defined as follows:
NCName ::= Name -
Name ::= NameStartChar *
NameStartChar ::= ":" | | "_" | | |
| | |
| | |
| | |
|
NameChar ::= NameStartChar | "-" | "." |
| #xB7 | |
Char ::=
#x9 | #xA | #xD |
| |
Whereby the Prefix is used as placeholder for the namespace and the LocalPart as the local part of the qualified name. A local part can be an attribute name or an element name.
Example
In line two the prefix "x" is declared to be associated with the URI