net.sf.saxon

## Class Query

- java.lang.Object
- - net.sf.saxon.Query

- Direct Known Subclasses:
    JDOM2Query, JDOMQuery, Query

      public class Query
      extends Object

  This Query class provides a command-line interface to the Saxon XQuery processor.

  The XQuery syntax supported conforms to the W3C XQuery 1.0 drafts.
  Author:
    Michael H. Kay

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected boolean` | `backup`
    `protected Configuration` | `config`
    `protected boolean` | `explain`
    `protected String` | `explainOutputFileName`
    `protected DecimalValue` | `languageVersion`
    `protected String` | `moduleURIResolverClass`
    `protected String` | `outputFileName`
    `protected Properties` | `outputProperties`
    `protected boolean` | `projection`
    `protected boolean` | `pullMode`
    `protected String` | `queryFileName`
    `protected int` | `repeat`
    `protected boolean` | `showTime`
    `protected String` | `sourceFileName`
    `protected boolean` | `updating`
    `protected String` | `uriResolverClass`
    `protected boolean` | `useURLs`
    `protected boolean` | `wrap`
    `protected boolean` | `writeback`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `Query()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected void` | `applyLocalOptions(CommandLineOptions options, Configuration config)` Customisation hook: apply options defined locally in a subclass
    `protected void` | `badUsage(String message)` Report incorrect usage of the command line, with a list of the options and arguments that are available
    `protected XQueryExpression` | `compileQuery(StaticQueryContext staticEnv, String queryFileName, boolean useURLs)` Compile the query
    `protected void` | `doQuery(String[] args, String command)` Support method for main program.
    `protected void` | `explain(XQueryExpression exp)` Explain the results of query compilation
    `protected Configuration` | `getConfiguration()` Get the configuration in use
    `static void` | `main(String[] args)` Main program, can be used directly from the command line.
    `protected void` | `parseOptions(CommandLineOptions options, String command, DynamicQueryContext dynamicEnv)` Parse the options supplied on the command line
    `protected void` | `processSource(Source sourceInput, XQueryExpression exp, DynamicQueryContext dynamicEnv)` Process the supplied source file
    `protected Source` | `processSourceFile(String sourceFileName, boolean useURLs)`
    `protected void` | `quit(String message, int code)` Exit with a message
    `protected void` | `runQuery(XQueryExpression exp, DynamicQueryContext dynamicEnv, OutputStream destination, Properties outputProps)` Run the query
    `void` | `setPermittedOptions(CommandLineOptions options)` Set the options that are recognized on the command line.

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

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

- - ### Field Detail

    - #### config

          protected Configuration config

    - #### outputProperties

          protected Properties outputProperties

    - #### showTime

          protected boolean showTime

    - #### repeat

          protected int repeat

    - #### sourceFileName

          protected String sourceFileName

    - #### queryFileName

          protected String queryFileName

    - #### useURLs

          protected boolean useURLs

    - #### outputFileName

          protected String outputFileName

    - #### moduleURIResolverClass

          protected String moduleURIResolverClass

    - #### uriResolverClass

          protected String uriResolverClass

    - #### explain

          protected boolean explain

    - #### wrap

          protected boolean wrap

    - #### pullMode

          protected boolean pullMode

    - #### projection

          protected boolean projection

    - #### languageVersion

          protected DecimalValue languageVersion

    - #### updating

          protected boolean updating

    - #### writeback

          protected boolean writeback

    - #### backup

          protected boolean backup

    - #### explainOutputFileName

          protected String explainOutputFileName

  - ### Constructor Detail

    - #### Query

          public Query()

  - ### Method Detail

    - #### getConfiguration

          protected Configuration getConfiguration()

      Get the configuration in use
      Returns:
        the configuration

    - #### main

          public static void main(String[] args)
                           throws Exception

      Main program, can be used directly from the command line.

      The format is:

      java net.sf.saxon.Query [options] query-file >output-file

      followed by any number of parameters in the form {keyword=value}... which can be referenced from within the query.

      This program executes the query in query-file.

      Parameters:
        `args` - List of arguments supplied on operating system command line
      Throws:
        `Exception` - Indicates that a compile-time or run-time error occurred

    - #### setPermittedOptions

          public void setPermittedOptions(CommandLineOptions options)

      Set the options that are recognized on the command line. This method can be overridden in a subclass to define additional command line options.
      Parameters:
        `options` - the CommandLineOptions in which the recognized options are to be registered.

    - #### doQuery

          protected void doQuery(String[] args,
                     String command)

      Support method for main program. This support method can also be invoked from subclasses that support the same command line interface
      Parameters:
        `args` - the command-line arguments
        `command` - name of the class, to be used in error messages

    - #### parseOptions

          protected void parseOptions(CommandLineOptions options,
                          String command,
                          DynamicQueryContext dynamicEnv)
                               throws TransformerException

      Parse the options supplied on the command line
      Parameters:
        `options` - the command line arguments
        `command` - the name of the command that was used (for diagnostics only)
        `dynamicEnv` - the XQuery dynamic context
      Throws:
        `TransformerException` - if failures occur. Note, the method may also invoke System.exit().

    - #### applyLocalOptions

          protected void applyLocalOptions(CommandLineOptions options,
                               Configuration config)

      Customisation hook: apply options defined locally in a subclass
      Parameters:
        `options` - the CommandLineOptions
        `config` - the Saxon Configuration

    - #### processSourceFile

          protected Source processSourceFile(String sourceFileName,
                                 boolean useURLs)
                                      throws TransformerException

      Throws:
        `TransformerException`

    - #### compileQuery

          protected XQueryExpression compileQuery(StaticQueryContext staticEnv,
                                      String queryFileName,
                                      boolean useURLs)
                                           throws XPathException,
                                                  IOException

      Compile the query
      Parameters:
        `staticEnv` - the static query context
        `queryFileName` - the filename holding the query (or "-" for the standard input)
        `useURLs` - true if the filename is in the form of a URI
      Returns:
        the compiled query
      Throws:
        `XPathException` - if query compilation fails
        `IOException` - if the query cannot be read

    - #### explain

          protected void explain(XQueryExpression exp)
                          throws FileNotFoundException,
                                 XPathException

      Explain the results of query compilation
      Parameters:
        `exp` - the compiled expression
      Throws:
        `FileNotFoundException` - if the destination for the explanation doesn't exist
        `XPathException` - if other failures occur

    - #### processSource

          protected void processSource(Source sourceInput,
                           XQueryExpression exp,
                           DynamicQueryContext dynamicEnv)
                                throws XPathException

      Process the supplied source file
      Parameters:
        `sourceInput` - the supplied source
        `exp` - the compiled XQuery expression
        `dynamicEnv` - the dynamic query context
      Throws:
        `XPathException` - if processing fails

    - #### runQuery

          protected void runQuery(XQueryExpression exp,
                      DynamicQueryContext dynamicEnv,
                      OutputStream destination,
                      Properties outputProps)
                           throws XPathException,
                                  IOException

      Run the query
      Parameters:
        `exp` - the compiled query expression
        `dynamicEnv` - the dynamic query context
        `destination` - the destination for serialized results
        `outputProps` - serialization properties defining the output format
      Throws:
        `XPathException` - if the query fails
        `IOException` - if input or output fails

    - #### quit

          protected void quit(String message,
                  int code)

      Exit with a message
      Parameters:
        `message` - The message to be output
        `code` - The result code to be returned to the operating system shell

    - #### badUsage

          protected void badUsage(String message)

      Report incorrect usage of the command line, with a list of the options and arguments that are available
      Parameters:
        `message` - The error message

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