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
keri hughesSubject: calling nested external function using xalan
Author: keri hughes
Date: 29 May 2008 09:21 AM
I have a simple function included from an external stylesheet being called using the code (snipped) below

mystylesheet.xslt
...
<xsl:include href="C:\XSLT_DEV\myfuncs.xsl"/>
...
<xsl:call-template name="myfuncs:max">
<xsl:with-param name="values" select="ID"/>
</xsl:call-template>

-------------
myfuncs.xsl
....
<xsl:template name="myfuncs:max">
<xsl:param name="values"/>
<xsl:variable name="max">
<xsl:for-each select="$values">
<xsl:sort data-type="number" order="descending"/>
<xsl:if test="position() = 1">
<xsl:value-of select="."/>
</xsl:if>
</xsl:for-each>
</xsl:variable>
<xsl:value-of select="$max"/>
</xsl:template>

Which works fine in stylus studio using all but the "java builtin" and "custom" processors which i've setup to use Xalan 2.7.1

Sadly our application uses Xalan-J 2.7.1. Can anyone think of a reason this will not work using the java based engines? Could it be that since it's a recursive function that it's a memory issue. It's only being called with maybe 5 or 6 ID's??

Any help will be met with more than ample gratitude.

TIA

Keri

Postnext
Ivan PedruzziSubject: calling nested external function using xalan
Author: Ivan Pedruzzi
Date: 29 May 2008 10:49 AM

Hi Keri,

The include statement is using a windows path but it should rather use a URL

<xsl:include href="file:///C:/XSLT_DEV/myfuncs.xsl"/>

If the the included XSLT is in the same folder of the main XSLT simply use

<xsl:include href="myfuncs.xsl"/>


Hope this helps
Ivan Pedruzzi
Stylus Studio Team

Posttop
keri hughesSubject: calling nested external function using xalan
Author: keri hughes
Date: 29 May 2008 11:12 AM
I agree with your analysis and have put this right however, I would have got an error had the mysheet.xslt not been able to include the myfuncs.xsl file.
I've now put the "function" inline, of course it's ceased to be a function like this and it seems to work ok, I think though, just a little inelegant.

<xsl:variable name="maxDOB">
<xsl:for-each select="IP_DOB/ID">
<xsl:sort data-type="number" order="descending"/>
<xsl:if test="position()=1">
<xsl:value-of select="."/>
</xsl:if>
</xsl:for-each>
</xsl:variable>

 
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.