xsl-list
[Top] [All Lists]

RE: [xsl] Accessing External Java Library

2007-11-01 05:47:42
Hi,

Before calling the external Java library I need to set some attributes, e.g.

pgp.setArmor(true)
pgp.setConventional(true)
pgp.setInputIsText(true)
pgp.setOutputIsText(true)

Is it possible to do this within the style sheet?

Also the XSLT programmers reverence seems to imply that only static types are 
supported - is this the case?

Regards, 

Carl Bourne 
Intellect 
DDI: +44 1491 842502
M: +44 7770 284294





-----Original Message-----
From: Michael Kay [mailto:mike(_at_)saxonica(_dot_)com] 
Sent: 01 November 2007 08:27
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: RE: [xsl] Accessing External Java Library

Your original code called PGP:pgp.encrypt() where PGP was bound to a
namespace. The error message shown here suggests strongly that you are
calling a function that is not namespace-prefixed. The reason -TJ shows
nothing is that it's not even looking for a Java extension function.

Please try to provide complete information about what you are doing and how
it fails. Saying "I tried lots of things and none of them worked" isn't
going to help.

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

-----Original Message-----
From: Carl Bourne [mailto:cbourne(_at_)intellect(_dot_)co(_dot_)uk] 
Sent: 01 November 2007 00:38
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: RE: [xsl] Accessing External Java Library

Hi Michael,

I tried the -TJ flag but it didn't seem to provide me with 
any more information:

C:\Documents and Settings\cbourne.LATITUDE-D620\My 
Documents\PGPJava>java -cp c:
\ColdFusion8\javapgp -jar saxon8.jar -TJ test.xml test.xslt 
Error at xsl:value-of on line 12 of 
file:/C:/Documents%20and%20Settings/cbourne.
LATITUDE-D620/My%20Documents/PGPJava/test.xslt:
  XPST0017: XPath syntax error at char 58 on line 12 in 
{...exicon", "test for",  " ", "...}:
    Unknown system function pgp.encrypt() Failed to compile 
stylesheet. 1 error detected.


Regards,

Carl Bourne
Intellect
DDI: +44 1491 842502
M: +44 7770 284294





-----Original Message-----
From: Michael Kay [mailto:mike(_at_)saxonica(_dot_)com]
Sent: 31 October 2007 22:59
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: RE: [xsl] Accessing External Java Library

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(_at_)intellect(_dot_)co(_dot_)uk]
Sent: 31 October 2007 22:43
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
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
 
 
 


--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: 
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--



--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: 
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: 
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--



--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--