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

How to invoke java instance methods from xslt?

Subject: How to invoke java instance methods from xslt?
From: Brad Cox <bcox@xxxxxxxxxxxxxxxxx>
Date: Fri, 1 Feb 2002 14:51:58 -0500
invoke java
Could someone please provide the recipe for passing a java instance into xslt and then calling a method on that instance? I'm using xalan extensions but keep getting lost in the weedy syntax.

With this input

	<task ident="...">
		<page ident="...">Arbitrary xhtml</page>
		<page ident="...">Arbitrary xhtml</page>
		<page ident="...">Arbitrary xhtml</page>
		<page ident="...">Arbitrary xhtml</page>
		<page ident="...">Arbitrary xhtml</page>
		<page ident="...">Arbitrary xhtml</page>
	</task>

and this for launching xslt from java

StringWriter sw = new StringWriter();
TransformerFactory tFactory = TransformerFactory.newInstance();
Transformer transformer = tFactory.newTransformer(new StreamSource(xslPath));
transformer.setParameter("cache", this);
transformer.transform(new StreamSource(xmlPath), new StreamResult(sw));


and this xslt. Cache is the java instance and addBody is one of its public methods.

<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                xmlns:java="http://xml.apache.org/xslt/java"
                version="1.0">

<xsl:param name="cache"></xsl:param>

  <xsl:template match="/task">
    <xsl:apply-templates select="page"/>
  </xsl:template>

<xsl:template match="page">
<xsl:variable name="ident" select="string(@ident)"/>
<xsl:variable name="body" select="text()"/>
<xsl:param name="cache" select="java:$cache.addPage($ident, $body)"/>
<xsl:value-of select="java:format($formatter, $date)"/>
</xsl:template>


</xsl:stylesheet>

The match("page") clause is gibberish because where I'm getting lost.


XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list



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.