[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

RE: NCName, QName and colons

Subject: RE: NCName, QName and colons
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Mon, 22 Feb 2010 13:15:04 -0000
RE:  NCName
> Michael Kay wrote:
> > "XML documents operated on by XPath must conform to the XML 
> Namespaces 
> > Recommendation [XML Names]."
> >   
> Is this rule binding on an XSLT 2 processor as well (by 
> virtue of its association with XPath 2)?

I was quoting from XPath 1.0; the rule is binding on an XSLT 1.0 processor
by virtue of section 3 of XSLT 1.0 which says "The data model used by XSLT
is the same as that used by XPath with the additions described in this
section."

> 
> Source document:
> 
> <:/>
> 
> Stylesheet:
> 
> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
> version="2.0">
> 
>     <xsl:output method="xml" omit-xml-declaration="yes"/>
> 
>     <xsl:template match="node()|@*">
>         <xsl:copy>
>             <xsl:apply-templates select="node()|@*"/>
>         </xsl:copy>
>     </xsl:template>
> 
> </xsl:stylesheet>
> 
> Output:
> 
> <:/>

It seems the XML parser built in to JDK 1.6 isn't reporting an error for
this source document. Really, no-one should be using this parser - it's
thoroughly buggy. (I keep saying that, but I keep finding that despite my
best intentions, I *do* use it, because it's so convenient.) The "real"
Xerces from Apache throws this document out with an error, albeit
not-all-that-helpful:

Error on line 1 column 2 of test.xml:
  SXXP0003: Error reported by XML parser: Element type "null" must be
followed by either
  attribute specifications, ">" or "/>".

> 
> 
> The error messages that I posted when initiating this thread 
> a few weeks ago gave me a forensic clue that the above might 
> work (i.e. without an error occurring).
> 
> Cheers
> Justin Johansson
> 
> 
> <original message>
> This seems rather odd.
> 
> Running an XSLT identity transform over the following source 
> document with Saxon 9b produces the error underneath:
> 
> <?xml version="1.0" encoding="UTF-8" ?>
> 
> <:a:apple xmlns:a="foo">
>    <banana/>
> </:a:apple>
> 
> Error on line 3 column 25 of foo.xml:
>  SXXP0003: Error reported by XML parser: The prefix ":a" for 
> element ":a:apple" is not bound.TransformerException: 
> net.sf.saxon.trans.XPathException: 
> org.xml.sax.SAXParseException: The prefix ":a" for element 
> ":a:apple" is not bound.
> 
> Obviously the source document is not valid XML but the error 
> message is confusing.

Direct your complaints to the vendor of the XML parser you are using!

Apache Xerces again reports

 "Element type "null" must be followed by either
  attribute specifications, ">" or "/>" 

for this one. In this case the Sun parser's error message is probably
better, though neither is wonderful.

Regards,

Michael Kay
http://www.saxonica.com/
http://twitter.com/michaelhkay 

Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.