## net.sf.saxon
Class Query

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

Direct Known Subclasses:
  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
`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
`Query()`

Method Summary
`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 static 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 static 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-2010 Saxonica Limited. All rights reserved.