[jdom-interest] JDOM XSLT TransformerConfigurationException

Laurent Bihanic laurent.bihanic at atosorigin.com
Fri Apr 3 16:27:30 PDT 2009


Hi,

Your XSL file is probably corrupted.

Running a similar code I get the following error :

Error at xsl:for-each on line 14 of eof.xsl:
   Namespace prefix ns has not been declared
Exception in thread "main" org.jdom.transform.XSLTransformException: Could not 
construct XSLTransformer: Failed to compile stylesheet. 1 error detected.
...
Caused by: javax.xml.transform.TransformerConfigurationException: Failed to 
compile stylesheet. 1 error detected.
         at com.icl.saxon.PreparedStyleSheet.prepare(PreparedStyleSheet.java:134)
         at 
com.icl.saxon.TransformerFactoryImpl.newTemplates(TransformerFactoryImpl.java:120)
         at org.jdom.transform.XSLTransformer.<init>(XSLTransformer.java:133)
         ... 2 more

Which is normal as the namespace declaration for the "ns" prefix is indeed 
missing.

Laurent


Jack Bush a écrit :
> Hi All,
> 
> I am getting the following exception when trying to do simple 
> transformation (newbie in JDOM XSLT) using either XSLTransformer/TrAX in 
> JDOM:
> 
>  
> 
> *javax.xml.transform.TransformerConfigurationException: 
> java.io.EOFException: no more input*
> 
> at com.icl.saxon.PreparedStyleSheet.prepare(PreparedStyleSheet.java:121)
> 
> at 
> com.icl.saxon.TransformerFactoryImpl.newTemplates(TransformerFactoryImpl.java:120)
> 
> at 
> com.icl.saxon.TransformerFactoryImpl.newTransformer(TransformerFactoryImpl.java:72)
> 
> at 
> standaloneClientRemoteInvestmentBean.JDOMTrAXPojoInvestmentBean.retrieveAreaZipcode(JDOMTrAXPojoInvestmentBean.java:68)
> 
> at 
> standaloneClientRemoteInvestmentBean.JDOMTrAXPojoInvestmentBean.main(JDOMTrAXPojoInvestmentBean.java:37)
> 
> Caused by: java.io.EOFException: no more input
> 
> at com.icl.saxon.aelfred.XmlParser.popInput(XmlParser.java:4083)
> 
> at com.icl.saxon.aelfred.XmlParser.pushURL(XmlParser.java:3620)
> 
> at com.icl.saxon.aelfred.XmlParser.doParse(XmlParser.java:159)
> 
> at com.icl.saxon.aelfred.SAXDriver.parse(SAXDriver.java:320)
> 
> at com.icl.saxon.om.Builder.build(Builder.java:265)
> 
> at com.icl.saxon.PreparedStyleSheet.prepare(PreparedStyleSheet.java:111)
> 
> ... 4 more
> 
>  
> 
> Below is the stateStyleSheet:
> 
> <?xml version="1.0" encoding="ISO-8859-1"?>
> 
> <xsl:stylesheet version="1.0"
> 
> xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
> 
> <xsl:template match="/">
> 
> <html>
> 
> <body>
> 
> <h2>Transformed State Detail</h2>
> 
> <table border="1">
> 
> <tr bgcolor="lightblue">
> 
> <th align="left">Area Link</th>
> 
> <th align="left">Area Name</th>
> 
> </tr>
> 
> <xsl:for-each 
> select="*/ns:html/ns:body/ns:div[@id='content']/ns:table[@class='sresults']/ns:tr/ns:td/ns:a*">
> 
> <tr>
> 
> <td><xsl:value-of select="@href"/></td>
> 
> <td><xsl:value-of select="@title"/></td>
> 
> </tr>
> 
> </xsl:for-each>
> 
> </table>
> 
> </body>
> 
> </html>
> 
> </xsl:template>
> 
> </xsl:stylesheet>
> 
>  
> 
> The Java program that calls this stateStyleSheet is as follows:
> 
>     SAXBuilder statesaxBuilder = new 
> SAXBuilder("org.ccil.cowan.tagsoup.Parser", false);
> 
>     org.jdom.Document stateDocument = statesaxBuilder.build("state.xml");
> 
>     TransformerFactory factory = TransformerFactory.newInstance();
> 
>     Transformer transformer = factory.newTransformer(new 
> StreamSource("stateStyleSheet.xsl"));
> 
>     JDOMSource source = new JDOMSource(stateDocument);
> 
>     JDOMResult result = new JDOMResult();
> 
>     transformer.transform(source, result);
> 
>     Document tranformedDocument = result.getDocument();
> 
>     ......
> 
>  
> 
> Could this exception have been caused by incorrectly formatted 
> stateStyleSheet? The search path 
> "/ns:html/ns:body/ns:div[@id='content']/ns:table[@class='sresults']/ns:tr/ns:td/ns:a" 
> has successfully worked in XPath such as the following lines:
> 
>  
> 
>     XPath statePath = 
> XPath.newInstance("*/ns:html/ns:body/ns:div[@id='content']/ns:table 
> [@class='sresults']/ns:tr/ns:td/ns:a*");
> 
>     statePath.addNamespace("ns", http://www.w3.org/1999/xhtml);
> 
>  
> 
> Whether including namespace ("ns") or not doesn't make any difference.
> 
> I am running JDK1.6, Netbeans 6.1, JDOM 1.1, Saxon 6.5, TagSoup 1.2 on 
> Windows XP platform.
> 
> Your assistance would be much appreciated.
> 
> Many thanks,
> 
> Jack


More information about the jdom-interest mailing list