The following software must be installed separately, it is not included with the Saxon download.
To run Saxon you need at least a Java VM, and preferably a Java development environment. Saxon 9.9 requires at least Java SE 8 (also known as JDK 1.8). It should also run under later Java versions, but this may not be fully tested.
Saxon has options to work with source trees constructed using DOM, JDOM, JDOM2, XOM, DOM4J, or AXIOM:
To use Saxon with DOM, you do not need any extra code on your classpath. The DOM implementation must support DOM Level-3 interfaces, and the DOM must be built with namespace processing enabled. Saxon is tested with both the DOM implementation provided by the Apache Xerces parser, and the DOM that is packaged with the Oracle JDK. It should work with other DOM implementations, but this can never be 100% guaranteed without testing. Many DOM implementations, especially non-productized implementations, deviate in minor but significant ways from the specifications.
For the other object models, JDOM, JDOM2, XOM, DOM4J, and AXIOM, the supporting Saxon adapter code is integrated into the JAR files for Saxon-PE and Saxon-EE, but is available only as source code for Saxon-HE. To exploit this code with the open source Home Edition, you will need to compile the source code from the relevant subpackage of
net.sf.saxon.option, and register it using the method registerExternalObjectModel on the Configuration object, or via the configuration file. (With Saxon-PE and Saxon-EE, the supported object models are registered automatically if the underlying code is found on the classpath.)
By default Saxon uses an XML parser that supports the SAX2 interface. Saxon has been tested successfully in the past with a wide variety of such parsers including Ælfred, Xerces, Lark, SUN Project X, Crimson, Piccolo, Oracle XML, xerces, xml4j, and xp. The recommended parser is the Apache version of Xerces (though the reliability problems with the parser that comes with the JDK seem to have been resolved in Java 8). By default Saxon uses the parser that comes with the Java platform. The parser must be SAX2-compliant. All the relevant JAR files must be installed on your Java CLASSPATH.
Saxon will also work with a StAX parser. Generally speaking, StAX parsers are less mature and less interoperable than SAX parsers, and any performance advantage is likely to be very minor. However, the support for StAX provides the ability to supply input via a customized pull pipeline. Saxon is tested with Woodstox 3.0.0. Saxon's schema validation is available only with a SAX2 parser.