[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] RE: NCName, QName and colons
> 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
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|