| SAXONICA |
This section is relevant to the Java platform only.
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.