net.sf.saxon.query

Class StandardModuleURIResolver

Implemented Interfaces:
ModuleURIResolver, Serializable

public class StandardModuleURIResolver
extends java.lang.Object
implements ModuleURIResolver

This class is the standard ModuleURIResolver used to implement the "import module" declaration in a Query Prolog. It is used when no user-defined ModuleURIResolver has been specified, or when the user-defined ModuleURIResolver decides to delegate to the standard ModuleURIResolver.
Author:
Michael H. Kay

Constructor Summary

StandardModuleURIResolver()
Create a StandardModuleURIResolver

Method Summary

static StandardModuleURIResolver
getInstance()
Get the singular instance of this class
protected StreamSource
getQuerySource(URI absoluteURI)
Get a StreamSource object representing the source of a query, given its URI.
StreamSource[]
resolve(String moduleURI, String baseURI, String[] locations)
Resolve a module URI and associated location hints.

Constructor Details

StandardModuleURIResolver

protected StandardModuleURIResolver()
Create a StandardModuleURIResolver

Method Details

getInstance

public static StandardModuleURIResolver getInstance()
Get the singular instance of this class
Returns:
the singular instance of this class

getQuerySource

protected StreamSource getQuerySource(URI absoluteURI)
            throws XPathException
Get a StreamSource object representing the source of a query, given its URI. This method attempts to discover the encoding by reading any HTTP headers. If the encoding can be determined, it returns a StreamSource containing a Reader that performs the required decoding. Otherwise, it returns a StreamSource containing an InputSource, leaving the caller to sort out encoding problems.
Parameters:
absoluteURI - the absolute URI of the source query
Returns:
a StreamSource containing a Reader or InputSource, as well as a systemID representing the base URI of the query.
Throws:
XPathException - if the URIs are invalid or cannot be resolved or dereferenced, or if any I/O error occurs

resolve

public StreamSource[] resolve(String moduleURI,
                              String baseURI,
                              String[] locations)
            throws XPathException
Resolve a module URI and associated location hints.
Specified by:
resolve in interface ModuleURIResolver
Parameters:
moduleURI - The module namespace URI of the module to be imported; or null when loading a non-library module.
baseURI - The base URI of the module containing the "import module" declaration; null if no base URI is known
locations - The set of URIs specified in the "at" clause of "import module", which serve as location hints for the module
Returns:
an array of StreamSource objects each identifying the contents of a module to be imported. Each StreamSource must contain a non-null absolute System ID which will be used as the base URI of the imported module, and either an InputSource or a Reader representing the text of the module.
Throws:
XPathException - (error XQST0059) if the module cannot be located