Re: [xsl] ant task

Subject: Re: [xsl] ant task
From: Michael Kay <mike@xxxxxxxxxxxx>
Date: Wed, 02 Jun 2010 00:17:00 +0100
On 01/06/2010 23:49, Monosij Dutta-Roy wrote:
I am using XSLT / Saxon 9.2 from Ant (using Saxon9-ant) to apply transforms.
I want to the use fileset task in ant to apply the XSLT to a set of
files in a directory.

Wanted to find out if there would be some examples of this. I am
thinking I need to:
1. send in a value for the 'in' param in the saxon-xslt task.
2. send in a parallel value for the 'out' paramter or modify the 'out'
parameter according to the name of the file.

My calls from Ant are working fine - just need to apply the transforms
to a set of files in a directory. If there is another approach to the
above please let me know.

Firstly, I don't recommend using the Saxon Ant XSLT task. Use the standard XSLT task instead, specifying Saxon (net.sf.saxon.TransformerFactoryImpl) as the JAXP transformer factory. Two reasons (a) it was never possible to test the Saxon task thoroughly enough, because there's no test suite available, so many regression bugs were introduced inadvertently, (b) the original justification for it has disappeared, since everything you might want to control in the transformation (e.g. initial template name, initial mode, etc etc) is now available through properties on the JAXP factory which the standard task can set.

That then leaves your question about applying the transformation to a set of files. I'm afraid that's something I haven't attempted to do at the ant level. It's easy enough to do it at the XSLT level by processing a collection().


Michael Kay

Current Thread