Lists Home |
Date Index |
Evan Lenz wrote:
> XML Schemas, Canonical XML, and other specs rely on the prefixes and scope
> of namespace declarations as significant information to be passed to the
> application, rather than just a lexical mechanism to resolve element and
> attribute names. This has introduced an amazing amount of complexity. In
> fact, XML Namespaces are actually getting a worse rap than they deserve,
> thanks to this increasingly common and fully-W3C-sanctioned practice.
> Is it too late to fix this? W3C specs would have to change. My question is:
> who else uses QNames in attribute values? Is there no turning back?
Anybody who wants to represent graphs at the schema level. For example,
XML-DBMS has a language that maps XML schemas to database schemas. Thus,
when we refer to an element type name, we use a QName. We could have
used two separate values (URI and local name), but if you've ever typed
this in more than once, you'll quickly realize that QNames are much
Note that there is actually a choice here about how to associate URIs
and prefixes. Most specs use namespaces declarations. XML-DBMS uses
elements at the start of the document to declare namespaces. This
simplifies processing and reduces confusion, but also reduces
portability, since you can't move map fragments around using something
like the DOM and be guaranteed of correct results.
(On the other hand, XML-DBMS provides a set of non-XML mapping objects
that are designed for this purpose and do far more checking than is
possible to specify in an XML Schema (with the possible exception of
Schematron), so I'm not too worried about it.)
And no, there is no going back. QNames in attribute values are too
massively useful and easy to use.