ant-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jose Alberto Fernandez" <jalbe...@cellectivity.com>
Subject Selecting XML Parsers
Date Tue, 30 Dec 2003 13:24:59 GMT

I am having a very hard time porting my build to 1.6.0.
I would like to get some input on how I should address my problem,
not sure if it is my problem or ANTs.

I need to use Saxon for some of my XSLT transformations, since I am
using
specific features of it. However, Saxon comes with Aelfred XML parser
which
is non-validating. Which means that <xmlvalidate/> and <ejbjar/> for
example
cannot use them.

In 1.5.x I solved this situation by having Saxon.jar outside of ant/lib
and passing it to <style/> in the classpath. That does not seem to work
in 1.6.0 since <style/> only uses the classpath to find the the Liason
but the TRAX liason does not uses it to find the factories.

If I put Saxon.jar in ant/lib. All tasks will start using Aelfred parser
and will break. Even tasks that specify a classpath, they do not use it
to find the parsers.

The main issue here seem to be that non of our tasks set the
ContextClassLoader
before calling the methods on the xml-apis. If the context classloader
where set, one could control on a task by task basis what parsers,
transformers,
etc, to use. I think the basic problem is in JAXPUtils where non of the
methods
allow passing a classloader. Had the methods allow a classloader, then
they could
have set the contextclassloader appropriatelly, before calling the
XMLAPI library.

Am I doing something wrong? I think we have a backward compatibility
issue here.

Jose Alberto




Mime
View raw message