It's not the DocumentBuilderFactory you need to switch,
it's the TransformerFactory.
You could load the stylesheet document into a DOM, read the
version attribute, and then compile the stylesheet using the appropriate
TransformerFactory. Both products will accept the stylesheet from a DOMSource,
which saves you parsing it twice - though you may find that you lose line
numbers which isn't nice for error messages. I would suggest instantiating the
TransformerFactory directly rather than relying on the JAXP mechanisms -
TransformerFactory tf = new
in the case of Saxon; you'll have to find out what the
class name is for Xalan.
Is it possible to access the Xalan transformation engine for version 1.0
stylesheets and the Saxon transformation engine for version 2.0
stylesheets. I have an existing implementation running 1.0 stylesheets
in Xalan. I need to add support for version 2.0 stylesheets using Saxon
while keeping the Xalan 1.0 support intact.
Do I need to open the stylesheet file, access the stylesheet version, and
then access either the class net.sf.saxon.dom.DocumentBuilderFactoryImpl() or the
depending on the stylesheet version?
Everything I've read so far regarding TrAX and JAXP is how to configure a
system property to reference one or the other engine to run in the Java
Is there a recommended strategy?