| 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 also provides a class net.sf.saxon.AugmentedSource which implements the Source
            interface. This class encapsulates one of the standard Source objects, and allows additional processing
            options to be specified. These options include whitespace handling, schema and DTD validation, XInclude processing,
            error handling, choice of XML parser, and choice of Saxon tree model.
         
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.