net.sf.saxon.lib

## Class StandardModuleURIResolver

- java.lang.Object
- - net.sf.saxon.lib.StandardModuleURIResolver

- All Implemented Interfaces:
    Serializable, ModuleURIResolver

      public class StandardModuleURIResolver
      extends 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 and Description
    `StandardModuleURIResolver()` Create a StandardModuleURIResolver.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `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.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### 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 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

    - #### 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

Copyright (c) 2004-2013 Saxonica Limited. All rights reserved.