Package net.sf.saxon

Class Query

java.lang.Object
net.sf.saxon.Query
Direct Known Subclasses:
JDOMQuery

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 Details

    • 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 Details

    • Query

      public Query()
  • Method Details

    • 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