Re: [xsl] NCName, QName and colons

Subject: Re: [xsl] NCName, QName and colons
From: Abel Braaksma <abel.online@xxxxxxxxx>
Date: Mon, 22 Feb 2010 12:19:43 +0100
(I know my answer is a bit late, sorry about that, but I couldn't resist)

Justin Johansson wrote:

> <:a:apple xmlns:a="foo">
> Obviously the source document is not valid XML but the error message is confusing.


Not quite: the source document is valid XML, see http://www.w3.org/TR/xml/#NT-Name. However, it is not valid XML+NS, see http://www.w3.org/TR/2009/REC-xml-names-20091208/#NT-NCName.

I was under the impression that XSLT could only process XML conforming to the Namespaces in XML Recommendation, but I can't find anything in the XSLT 1.0 specification that strictly prohibits the input to have to be classic (i.e., non-namespace) XML. It requires a source tree, but how the source tree is build from an actual source and what its specifications are, if any, I can't find it.

XSLT 2.0 seems to deliberately allow any input, as long as it conforms to, or is parsed into the XDM data model. This indirectly prohibits XML Name, and only allows valid QNames to be used: http://www.w3.org/TR/xpath-datamodel/#dm-node-name.

Kind regards,
Abel Braaksma

PS: it seems that at the time of XSLT 1.0, an effort was started to create an XML Query Data Model (http://www.w3.org/TR/2001/WD-query-datamodel-20010215/#elemNode). This, too, only allowed QNames. However, it never made it to a Recommendation and work was not in sync with work on the XSLT 1.0 specification (unverified).

Current Thread