## net.sf.saxon
Class Query

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

Direct Known Subclasses:
  JDOMQuery, Query

    public class Query

extends java.lang.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 java.lang.String` `explainOutputFileName`
`protected java.lang.String` `moduleURIResolverClass`
`protected java.lang.String` `outputFileName`
`protected boolean` `projection`
`protected boolean` `pullMode`
`protected java.lang.String` `queryFileName`
`protected int` `repeat`
`protected boolean` `showTime`
`protected java.lang.String` `sourceFileName`
`protected boolean` `updating`
`protected java.lang.String` `uriResolverClass`
`protected boolean` `useURLs`
`protected boolean` `wrap`
`protected boolean` `writeback`

Constructor Summary
`Query()`

Method Summary
`protected void` `badUsage(java.lang.String name, java.lang.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, java.lang.String queryFileName, boolean useURLs)` Compile the query
`protected void` `doQuery(java.lang.String[] args, java.lang.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
`protected static void` `loadAdditionalSchemas(Configuration config, java.lang.String additionalSchemas)`
`static void` `main(java.lang.String[] args)` Main program, can be used directly from the command line.
`protected Configuration` `makeConfiguration(boolean schemaAware, java.lang.String className)` Set the configuration.
`protected void` `parseOptions(java.lang.String[] args, java.lang.String command, DynamicQueryContext dynamicEnv, java.util.Properties outputProps)` Parse the options supplied on the command line
`protected void` `processSource(javax.xml.transform.Source sourceInput, XQueryExpression exp, DynamicQueryContext dynamicEnv)` Process the supplied source file
`protected javax.xml.transform.Source` `processSourceFile(java.lang.String sourceFileName, boolean useURLs)`
`protected static void` `quit(java.lang.String message, int code)` Exit with a message
`protected void` `runQuery(XQueryExpression exp, DynamicQueryContext dynamicEnv, java.io.OutputStream destination, java.util.Properties outputProps)` Run the query
`protected boolean` `testIfSchemaAware(java.lang.String[] args)` Prescan the command line arguments to see if any of them imply use of a schema-aware processor

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### config

    protected Configuration config

### showTime

    protected boolean showTime

### repeat

    protected int repeat

### sourceFileName

    protected java.lang.String sourceFileName

### queryFileName

    protected java.lang.String queryFileName

### useURLs

    protected boolean useURLs

### outputFileName

    protected java.lang.String outputFileName

### moduleURIResolverClass

    protected java.lang.String moduleURIResolverClass

### uriResolverClass

    protected java.lang.String uriResolverClass

### explain

    protected boolean explain

### wrap

    protected boolean wrap

### pullMode

    protected boolean pullMode

### projection

    protected boolean projection

### updating

    protected boolean updating

### writeback

    protected boolean writeback

### backup

    protected boolean backup

### explainOutputFileName

    protected java.lang.String explainOutputFileName

Constructor Detail

### Query

    public Query()

Method Detail

### makeConfiguration

    protected Configuration makeConfiguration(boolean schemaAware,
                                              java.lang.String className)

  Set the configuration. This is designed to be overridden in a subclass

  Parameters:
    `schemaAware` - true if a schema-aware configuration is required (in this case Saxon-SA must be installed and licensed)
    `className` - the name of the class to be loaded, representing the Configuration. This allows additional control of the loading process under .NET
  Returns:
    the successfully loaded Configuration

### getConfiguration

    protected Configuration getConfiguration()

  Get the configuration in use

  Returns:
    the configuration

### main

    public static void main(java.lang.String[] args)
                     throws java.lang.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:
    `java.lang.Exception` - Indicates that a compile-time or run-time error occurred

### doQuery

    protected void doQuery(java.lang.String[] args,
                           java.lang.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

### testIfSchemaAware

    protected boolean testIfSchemaAware(java.lang.String[] args)

  Prescan the command line arguments to see if any of them imply use of a schema-aware processor

  Parameters:
    `args` - the command line arguments
  Returns:
    true if a schema-aware processor is needed

### parseOptions

    protected void parseOptions(java.lang.String[] args,
                                java.lang.String command,
                                DynamicQueryContext dynamicEnv,
                                java.util.Properties outputProps)
                         throws javax.xml.transform.TransformerException

  Parse the options supplied on the command line

  Parameters:
    `args` - the command line arguments
    `command` - the name of the command that was used (for diagnostics only)
    `dynamicEnv` - the XQuery dynamic context
    `outputProps` - the serialization properties
  Throws:
    `javax.xml.transform.TransformerException` - if failures occur. Note, the method may also invoke System.exit().

### loadAdditionalSchemas

    protected static void loadAdditionalSchemas(Configuration config,
                                                java.lang.String additionalSchemas)
                                         throws javax.xml.transform.TransformerException

  Throws:
    `javax.xml.transform.TransformerException`

### processSourceFile

    protected javax.xml.transform.Source processSourceFile(java.lang.String sourceFileName,
                                                           boolean useURLs)
                                                    throws javax.xml.transform.TransformerException

  Throws:
    `javax.xml.transform.TransformerException`

### compileQuery

    protected XQueryExpression compileQuery(StaticQueryContext staticEnv,
                                            java.lang.String queryFileName,
                                            boolean useURLs)
                                     throws XPathException,
                                            java.io.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
    `java.io.IOException` - if the query cannot be read

### explain

    protected void explain(XQueryExpression exp)
                    throws java.io.FileNotFoundException,
                           XPathException

  Explain the results of query compilation

  Parameters:
    `exp` - the compiled expression
  Throws:
    `java.io.FileNotFoundException` - if the destination for the explanation doesn't exist
    `XPathException` - if other failures occur

### processSource

    protected void processSource(javax.xml.transform.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,
                            java.io.OutputStream destination,
                            java.util.Properties outputProps)
                     throws XPathException,
                            java.io.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
    `java.io.IOException` - if input or output fails

### quit

    protected static void quit(java.lang.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(java.lang.String name,
                            java.lang.String message)

  Report incorrect usage of the command line, with a list of the options and arguments that are available

  Parameters:
    `name` - The name of the command being executed (allows subclassing)
    `message` - The error message

Copyright (c) Saxonica Limited. All rights reserved.