XML Editor
Sign up for a WebBoard account Sign Up Keyword Search Search More Options... Options
Chat Rooms Chat Help Help News News Log in to WebBoard Log in Not Logged in
Show tree view Topic
Topic Page 1 2 3 4 5 6 7 8 9 Go to previous topicPrev TopicGo to next topicNext Topic
Postnext
princy MathewSubject: Error when trying to a call a template from an imported XSL
Author: princy Mathew
Date: 17 Nov 2008 09:18 AM
Greetings to all,

I have an application which converts XSL to PDF using FOP.

When running on JDK 1.4 and Tomcat 5.0, this application converted XSL files to PDF perfectly.

But when I moved the application to Tomcat 5.5 and JDK 1.5, conversion of XSL files to PDF threw some errors.

One of the errors was due to 'value-of select' that I used in my XSL. I have posted this issue in this forum and I got the solution for it (Thanks to Mike)

But now I have a new error.

Actually I have 2 XSL files named 'Main.xsl' and 'Layout.xsl' .

Below is my Main.xsl
*********************************************
<?xml version="1.0" encoding="UTF-8"?>

<xsl:stylesheet version="1.0" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:str="http://exslt.org/strings" xmlns:math="http://exslt.org/math">

<xsl:import href="Layout.xsl"/>

<xsl:template name="ActualBody">

<fo:block>Testing</fo:block>

</xsl:template>
</xsl:stylesheet>

*****************************************
Below is my Layout.xsl
*******************************************
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="/">

<fo:root line-stacking-strategy="font-height" xmlns:fo="http://www.w3.org/1999/XSL/Format">
<!-- PAGE LAYOUT DEFINITION-->
<fo:layout-master-set>

....
..
...
<fo:page-sequence master-reference="pm0" orphans="2" white-space-collapse="false" widows="2">

<fo:flow flow-name="body">
<xsl:call-template name="ActualBody"/>
</fo:flow>


</fo:page-sequence>
</fo:root>
</xsl:template>
</xsl:stylesheet>


************************************

When I run Main.xsl (using my application working in jDK1.5 and Tomcat 5.5), I get an error saying 'COuld not find template named :ActualBody'

But this was working fine when the application was deployed in JDK1.4 and Tomcat 5.0


Any help appreciated

Thanks in advance
PRincy

Posttop
princy MathewSubject: Error when trying to a call a template from an imported XSL
Author: princy Mathew
Date: 18 Nov 2008 09:34 AM
Hi all,

Actually there was a mistake in my XSL.

This mistake is ignored when the application runs on Tomcat 5.0 and JDK1.4. But when it is running on Tomcat 5.5 and JDK1.5, it would throw error. (My application compiles the XSL and places it in cache before converting XSL to PDF using FOP)

The following is the mistake that I had in my XSL:


My MainXSL had a template named 'First' which calls another template 'Second'. Actually I am not calling 'First' in any part of my XSL(that is the 'First' template is not at all accessed) and there is no 'Second' template neither in my Main XSL nor in my Layout.xsl.(the xsl which is imported in my main XSL).
The error was because I did not give any definition for the template 'Second' (even though I never tried to access it .)
******************************************
Below is my Main.xsl
*********************************************
<?xml version="1.0" encoding="UTF-8"?>

<xsl:stylesheet version="1.0" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:str="http://exslt.org/strings" xmlns:math="http://exslt.org/math">

<xsl:import href="Layout.xsl"/>

<xsl:template name="ActualBody">

<fo:block>Testing</fo:block>

</xsl:template>

<xsl:template name="First">

<xsl:call-template name="Second"/>

</xsl:template>

</xsl:stylesheet>



When I removed 'First.xsl' (which I was not at all using), it worked perfectly in JDK1.5 and Tomcat 5.5

One more thing, that I noted is that if a variable name is having a space at the end, it would throw error in JDK 1.5 and Tomcat 5.5. But not in JDK 1.4 and Tomcat 5.0.
That is for exaample:

<xsl:variable name="Test " select="'testing'"/> (Note that there is a space between variable name Test and double quote " )
The above code snippet will work fine on JDK1.4 but not on JDK 1.5

I know that the explanation which I gave above is quite confusing . But hope this helps someone else later.....

 
Topic Page 1 2 3 4 5 6 7 8 9 Go to previous topicPrev TopicGo to next topicNext Topic
Download A Free Trial of Stylus Studio 6 XML Professional Edition Today! Powered by Stylus Studio, the world's leading XML IDE for XML, XSLT, XQuery, XML Schema, DTD, XPath, WSDL, XHTML, SQL/XML, and XML Mapping!  
go

Log In Options

Site Map | Privacy Policy | Terms of Use | Trademarks
Stylus Scoop XML Newsletter:
W3C Member
Stylus Studio® and DataDirect XQuery ™are from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2016 All Rights Reserved.