Re: [xsl] Calling java from xsl - with xml as parameter

Subject: Re: [xsl] Calling java from xsl - with xml as parameter
From: "richardtrans@xxxxxx" <richardtrans@xxxxxx>
Date: Thu, 6 Dec 2007 20:06:57 +0100 (CET)
Hi David.

Your answer brought me closer. Knowing datatypes is important.
If i do as you suggested:
	<xsl:variable name="xmlString" select="/*[local-name()='Invoice']" />
and:
 	<xsl:variable name="pdfBytes">
		<xsl:value-of select="transf:rtrtransform($xmlString)"/>
	</xsl:variable>
then it sends a NodeSet (I THINK) to the java method.
But the java method does not get called. I get an error: 
javax.xml.transform.TransformerException: java.lang.
NoSuchMethodException: For extension function, could not find method dk.
edbgruppen.genericdocumentprocess.transformation.TransformManagerImpl.
rtrtransform([ExpressionContext,] #NODESET).
Checked both static and instance methods.

Is one of my datatypes wrong?

public static String rtrtransform(NodeSet object2Transform) {
	try {
//method is simplified.
			System.out.println("OK " + "");
			return "ok";
		} catch (Exception ex) {
			System.out.println("Error " + "");
			return "Error";
		}
	}

I know i didnt send complete files, but i think you understand the 
problem.

Best regards,
Richard Trans
----Oprindelig meddelelse----
Fra: davidc@xxxxxxxxx
Dato: 06/12/2007 17:53
Til: <xsl-list@xxxxxxxxxxxxxxxxxxxxxx>
Emne: Re: [xsl] Calling java from xsl - with xml as parameter

<xsl:variable name="xmlString">
	<xsl:copy-of select="/*[local-name()='Invoice']" />
</xsl:variable>

There is no need to copy it, just

<xsl:variable name="xmlString" select="/*[local-name()='Invoice']" />


f select="transf:rtrtransform(string($xmlString))"/>
                              ^^^^^^

the string function will throw away all the tree structure and just 
make
a string of the element contents. If you don't want that, just pass 
the
xml to your extension functrion, assuming your function can accept XML
nodes (using some object model)

David


________________________________________________________________________
The Numerical Algorithms Group Ltd is a company registered in England
and Wales with company number 1249803. The registered office is:
Wilkinson House, Jordan Hill Road, Oxford OX2 8DR, United Kingdom.

This e-mail has been scanned for all viruses by Star. The service is
powered by MessageLabs. 
________________________________________________________________________

Current Thread