net.sf.saxon.lib

## Class StandardCollectionURIResolver

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

- All Implemented Interfaces:
    Serializable, CollectionURIResolver
  Direct Known Subclasses:
    MultithreadedCollectionURIResolver

      public class StandardCollectionURIResolver
      extends Object
      implements CollectionURIResolver

  This class implements the default collection URI Resolver.

  This supports two implementations of collections. If the URI supplied uses the "file:/" scheme, and the file that is referenced is a directory, then the collection is the set of files in that directory. Query parameters may be included in the URI:

  - recurse=yes|no controls whether the directory is scanned recursively;

  - strip-space=yes|no determines whether whitespace text nodes are stripped from the selected documents;

  - validation=strict|lax|preserve|strip determines whether schema validation is applied;

  - select=pattern determines which files in the directory are selected.

  - on-error=fail|warn|ignore determines the action taken if processing of a file fails

  - parser=qualified.class.name selects the parser (XMLReader) to be used to read the files

  Otherwise, the resolver attempts to dereference the URI to obtain a catalog file. This is an XML file containing a list of documents, in the format:

       <collection>
         <doc href="doc1.xml"/>
         <doc href="doc2.xml"/>
       </collection>

  See Also:
    Serialized Form

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `protected static class` | `StandardCollectionURIResolver.FileExpander` Mapping function to process the files in a directory.

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `StandardCollectionURIResolver()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected SequenceIterator<? extends NodeInfo>` | `catalogContents(String href, String baseURI, String absURI, XPathContext context)` Return a collection defined as a list of URIs in a catalog file
    `protected SequenceIterator<DocumentInfo>` | `directoryContents(File directory, URIQueryParameters params, XPathContext context)` Return the contents of a collection that maps to a directory in filestore
    `protected URI` | `makeAbsoluteURI(String href, String base, XPathContext context, URI relativeURI)`
    `SequenceIterator` | `resolve(String href, String base, XPathContext context)` Resolve a URI.

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

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

- - ### Constructor Detail

    - #### StandardCollectionURIResolver

          public StandardCollectionURIResolver()

  - ### Method Detail

    - #### resolve

          public SequenceIterator resolve(String href,
                                 String base,
                                 XPathContext context)
                                   throws XPathException

      Resolve a URI.
      Specified by:
        `resolve` in interface `CollectionURIResolver`
      Parameters:
        `href` - The relative URI of the collection. This corresponds to the argument supplied to the collection() function. If the collection() function was called with no arguments (to get the "default collection") this argument will be null.
        `base` - The base URI that should be used. This is the base URI of the static context in which the call to collection() was made, typically the URI of the stylesheet or query module
        `context` - The dynamic execution context
      Returns:
        an Iterator over the documents in the collection. The items returned by this iterator must be instances either of xs:anyURI, or of node() (specifically, `NodeInfo`.). If xs:anyURI values are returned, the corresponding document will be retrieved as if by a call to the doc() function: this means that the system first checks to see if the document is already loaded, and if not, calls the registered URIResolver to dereference the URI. This is the recommended approach to ensure that the resulting collection is stable: however, it has the consequence that the documents will by default remain in memory for the duration of the query or transformation.
      Throws:
        `XPathException` - if any failure occurs

    - #### makeAbsoluteURI

          protected URI makeAbsoluteURI(String href,
                            String base,
                            XPathContext context,
                            URI relativeURI)
                                 throws XPathException

      Throws:
        `XPathException`

    - #### directoryContents

          protected SequenceIterator<DocumentInfo> directoryContents(File directory,
                                                         URIQueryParameters params,
                                                         XPathContext context)

      Return the contents of a collection that maps to a directory in filestore
      Parameters:
        `directory` - the directory to be processed
        `params` - parameters indicating whether to process recursively, what to do on errors, and which files to select
        `context` - the dynamic XPath evaluation context
      Returns:
        an iterator over the documents in the collection

    - #### catalogContents

          protected SequenceIterator<? extends NodeInfo> catalogContents(String href,
                                                             String baseURI,
                                                             String absURI,
                                                             XPathContext context)
                                                                  throws XPathException

      Return a collection defined as a list of URIs in a catalog file
      Parameters:
        `href` - the relative URI as supplied
        `baseURI` - the base URI
        `absURI` - the absolute URI of the catalog file
        `context` - the dynamic evaluation context
      Returns:
        an iterator over the documents in the collection
      Throws:
        `XPathException` - if any failures occur

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