Saxonica.com

JAXP Source Types

When a user application invokes Saxon via the Java API, then a source document is supplied as an instance of the JAXP Source class. This is true whether invoking an XSLT transformation, an XQuery query, or a free-standing XPath expression. The Source class is essentially a marker interface. The Source that is supplied must be a kind of Source that Saxon recognizes.

Saxon recognizes the three kinds of Source defined in JAXP: a StreamSource, a SAXSource, and a DOMSource. If a DOMSource is to be used, then the Saxon DOM support classes in saxon8-dom.jar must be on the class path.

Nodes in Saxon's implementation of the XPath data model are represented by the interface net.sf.saxon.NodeInfo. A NodeInfo is itself a Source, which means that any method in the API that requires a source object will accept any implementation of net.sf.saxon.NodeInfo.

Saxon allows additional Source types to be supported by registering a SourceResolver with the Configuration object. The task of a SourceResolver is to convert a Source that Saxon does not recognize into a Source that it does recognize. For example, this may be done by building the document tree in memory and returning the NodeInfo object representing the root of the tree.

Next