Subject: RE: [xsl] Calling a Java extension from XSLT using Saxon B From: "Michael Kay" <mike@xxxxxxxxxxxx> Date: Tue, 23 Jun 2009 22:57:42 +0100 |
It's always useful to use the -TJ option when debugging this kind of problem. I think your problem is that you used the -jar option on the command line. This causes the classpath to be ignored. You need to use the java -cp ... net.sf.saxon.Transform way of invoking the transformation. I'm afraid this is an elephant trap that many people fall into. However prominently I put the warnings in the documentation, they still fall in. Incidentally, questions about specific XSLT products are best asked on a product specific list. For Saxon that's the saxon-help list which you can find via the saxon project on SourceForge. Regards, Michael Kay http://www.saxonica.com/ http://twitter.com/michaelhkay > -----Original Message----- > From: Blaine McNutt (rbmcnutt) [mailto:rbmcnutt@xxxxxxxxx] > Sent: 23 June 2009 20:20 > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > Subject: [xsl] Calling a Java extension from XSLT using Saxon B > > I am not a Java programmer, but I would like to use an > extension to check for the existence of an image file > referenced by an XML file (as I believe that is the only way > to check for the existence of a non-XML file). This topic has > been discussed a lot on various aliases, and despite my best > efforts, I'm unable to unravel the mystery. > > I've included what I believe to be relevant information. > > Error Message: > -------------- > Error at xsl:value-of on line 15 column 48 of > nxs-test-image-exists.xsl: > XPST0017: XPath syntax error at char 20 on line 15 in > {nxs:fileExist(@osrc)}: > Cannot find a matching 1-argument function named > {java:FileExist}fileExist() Failed to compile stylesheet. 1 > error detected. > > Saxon-B 9.1.7 J stored in xmlsrc/xTools/saxon9. > ----------------------------------------------- > > Java program (compiled and the FileExist.class file stored in > xmlsrc/xTools/saxon9/classes) > > /* Source: > http://p2p.wrox.com/xslt/71563-xslt-check-if-directory-exist.html */ > > import java.io.File; > > public class FileExist { > > private static boolean exist; > > public static boolean fileExist(String myfile) { > > exist = new File(myfile).exists(); > > return exist; > > } > } > > XML Snippet for img element > --------------------------- > > ... > <img osrc="../../images/1982.jpg" /> > > ... > > XSLT > ------ > > <?xml version="1.0" encoding="UTF-8"?> > > <xsl:stylesheet version="2.0" > xmlns:xsl="http://www.w3.org/1999/XSL/Transform" > xmlns:nxs="java:FileExist"> > > <xsl:output method="xml"/> > > <xsl:template match="/"> > <xsl:apply-templates /> </xsl:template> > > <xsl:template match="img"> > <xsl:value-of select="nxs:fileExist(@osrc)" > /> </xsl:template> > > </xsl:stylesheet> > > Korn Shell script/command line call: > ------------------------------------ > > # define saxon command line > saxon="java -classpath xTools/saxon9/classes; -jar -Xmx1G > xTools/saxon9/saxon9.jar -tree:tiny -dtd:off -ext:on " > # call transform > $saxon deliverables/help/helpFile.xml > xslt/nxs-test-image-exists.xsl > imageerror.xml > > > Thank you for any insights you might offer. > > Blaine
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] Calling a Java extension , Blaine McNutt (rbmcn | Thread | Re: [xsl] Calling a Java extension , Ganesh Babu N |
RE: [xsl] Calling a Java extension , Blaine McNutt (rbmcn | Date | Re: [xsl] Calling a Java extension , Ganesh Babu N |
Month |