On Jan 2, 2007, at 7:58 AM, Dominique Devienne wrote:
On 12/30/06, Trevor Harmon <[EMAIL PROTECTED]> wrote:
I'm trying to use Saxon instead of the built-in Xalan processor for
the Xslt task. Supposedly, all I have to do is specify a classpath
when calling the task [1], but I've never been able to get this to
work. Ant always finds the built-in processor in its lib directory.
Using the excellent Saxon XSLT processor with Ant is discussed in
Ant Wiki.
There's a bug on that page: ${antHome} should be ${ant.home}. But
it's not necessary to specify ant-trax.jar in the classpath anyway.
To answer Jay, Ant uses the JDK-provided TraX API to locate an XSLT
processor, which obeys the discovery rules prescribed by TraX. In
short, if Saxon is first in the classpath, it should be the processor
picked up by default.
This is exactly what was causing my problem. Turns out xalan-j was
already on my CLASSPATH environment variable, so Ant was always
finding it first, no matter what I specified in the classpath
attribute of Xslt. Ugh...classpath hell...
Unfortunately, it's not so easy to fix this because I use Fink, and
its ant-optional package, which is required for any of Ant's optional
tasks, depends on xalan-j.
Using an explicit factory overrides this default behavior. --DD
Okay, that should fix my Fink problem, except I can't get it to work.
I've created a test case that's just like the Ant Wiki code, except
I've specified net.sf.saxon.TransformerFactoryImpl in the <factory>
element. But when I do that, I always get
java.lang.ClassNotFoundException. I can work around it by explicitly
putting Saxon's JAR in the -lib command-line parameter, or in my
CLASSPATH environment variable, but then that defeats the whole point
of a factory override.
Here's the test case:
http://vocaro.com/trevor/files/saxon-test.zip
How do I get the override behavior you describe, instead of a
ClassNotFoundException? I'm using Ant 1.7.0. Thanks,
Trevor
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]