RE: [xsl] Accessing External Java Library

Subject: RE: [xsl] Accessing External Java Library
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Wed, 31 Oct 2007 22:58:35 -0000
Try the -TJ flag, which will help to distinguish between the different
reasons for not finding the method you want to call. The most common reasons
are:

class not on classpath (often caused by using -jar on the command line,
which means there is no classpath)

class not public

method name wrong

method not public

method not static (when the call assumes it will be)

method arguments have wrong type

Michael Kay
http://www.saxonica.com/


> -----Original Message-----
> From: Carl Bourne [mailto:cbourne@xxxxxxxxxxxxxxx]
> Sent: 31 October 2007 22:43
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: [xsl] Accessing External Java Library
>
> Hi,
>  
> I'm trying to access an external java library using Saxon 8.0
> and XSLT. The library basically calls some PGP functionality
> that encrypts the data within the "data" element of the XML
> file. I also need to be able to set the following attributes:-
>  
> pgp.setArmor(true)
> pgp.setConventional(true)
> pgp.setInputIsText(true)
> pgp.setOutputIsText(true)
> I've defined a style sheet called test.xslt which contains:-
>  
> <xsl:transform
>  xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
>  version="2.0"
>  xmlns:PGP="java:iPGP.iPGP">
>
> <xsl:template match="data">
>   <result>
>     <xsl:value-of
> select="PGP:pgp.encrypt(&quot;lexicon&quot;, &quot;test
> for&quot;, &quot;&quot;, &quot;&quot;)"/>
>   </result>
> </xsl:template>
> </xsl:transform>
>  
> The XML simply contains:-
>  
> <?xml version="1.0" encoding="UTF-8"?>
> <data>Test Data</data>
>  
> However, I'm having problems accessing the external java
> class and defining the set parameters that must be defined
> prior to invoking the class. Here's an example of accessing
> the library from a Java perspective:-
>  
> import iPGP.iPGP.*
> def pgp = new iPGP.iPGP()
> pgp.setArmor(true)
> pgp.setConventional(true)
> pgp.setInputIsText(true)
> pgp.setOutputIsText(true)
> errorcode=pgp.encrypt("lexicon", "test for", "", "")
> data=pgp.getASCIIOutput()
> println data
>  
> Would somebody be kind enough to explain/show how I could do this?
>  
> Best Regards,
>  
> Carl
>  
>  
>  

Current Thread