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.