Package net.sf.saxon.lib
Class StandardModuleURIResolver
- java.lang.Object
-
- net.sf.saxon.lib.StandardModuleURIResolver
-
- All Implemented Interfaces:
java.io.Serializable
,ModuleURIResolver
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
- See Also:
- Serialized Form
-
-
Constructor Summary
Constructors Constructor Description StandardModuleURIResolver()
Create a StandardModuleURIResolver.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static StandardModuleURIResolver
getInstance()
Get the singular instance of this classprotected javax.xml.transform.stream.StreamSource
getQuerySource(java.net.URI absoluteURI)
Get a StreamSource object representing the source of a query, given its URI.javax.xml.transform.stream.StreamSource[]
resolve(java.lang.String moduleURI, java.lang.String baseURI, java.lang.String[] locations)
Resolve a module URI and associated location hints.
-
-
-
Constructor Detail
-
StandardModuleURIResolver
public StandardModuleURIResolver()
Create a StandardModuleURIResolver. Although the class is generally used as a singleton, a public constructor is provided so that the class can be named in configuration files and instantiated in the same way as user-written module URI resolvers.
-
-
Method Detail
-
getInstance
public static StandardModuleURIResolver getInstance()
Get the singular instance of this class- Returns:
- the singular instance of this class
-
resolve
public javax.xml.transform.stream.StreamSource[] resolve(java.lang.String moduleURI, java.lang.String baseURI, java.lang.String[] locations) throws XPathException
Resolve a module URI and associated location hints.- Specified by:
resolve
in interfaceModuleURIResolver
- 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 knownlocations
- 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
-
getQuerySource
protected javax.xml.transform.stream.StreamSource getQuerySource(java.net.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
-
-