Hi Folks,
             I have a lagacy system where i am using xalan (xslt 1.0), but now i want to extend the system by the inclusion of a new project where i want to use saxon (xslt 2.0).

Now my requirement is to keep both the processors working together, i.e. all the old scripts should be executed by xalan and all new scripts (implemented using xslt 2.0) should be exected by saxon.

In my transformation class, i am using default factory implementation of xslt processor that is xalan: TransformerFactory factory = TransformerFactory.newInstance();

Now my question is how can i make a switch between xalan and saxon or in other words how can i change at runtime my processor to saxon, assuming the given input follows xslt 2.0 specs?

For example:

I have an esb descriptors with 2 actions, first needs xalan processor and the 2nd one needs saxon:

                                <action name="Transform" class="com.traveltainment.integra.middleware.transformer.Transformator_XALAN">
<property name="service-template-pool-name" value="Service"/>
<property name="xsl-resources" value="/META-INF/xsl/h4u/RequestHandlerHotel.xsl"/>
<property name="template" value="/META-INF/xsl/h4u/RequestHandlerHotel.xsl"/>

                                <action name="Transform" class="com.traveltainment.integra.middleware.transformer.Transformator_SAXON">
<property name="service-template-pool-name" value="Service"/>
<property name="xsl-resources" value="/META-INF/xsl/h4u/RequestHandlerPackage.xsl"/>
<property name="template" value="/META-INF/xsl/h4u/RequestHandlerPackage.xsl"/>

I could have a single action class above and i could set in the property which processor to use but again the main problem is to how to switch between transformation factories?

Regards Suleman