Package net.sf.saxon

Class Query

java.lang.Object
net.sf.saxon.Query
Direct Known Subclasses:
JDOM2Query, 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

    • processor

      protected Processor processor
    • config

      protected Configuration config
    • 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 final String uriResolverClass
    • explain

      protected boolean explain
    • wrap

      protected boolean wrap
    • projection

      protected boolean projection
    • streaming

      protected boolean streaming
    • 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)
      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
    • 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) throws TransformerException
      Parse the options supplied on the command line
      Parameters:
      options - the command line arguments
      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 XQueryExecutable compileQuery(XQueryCompiler compiler, String queryFileName, boolean useURLs) throws SaxonApiException, IOException
      Compile the query
      Parameters:
      compiler - the XQuery compiler
      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:
      SaxonApiException - 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, XQueryExecutable exp, XQueryEvaluator evaluator) throws SaxonApiException
      Process the supplied source file
      Parameters:
      sourceInput - the supplied source
      exp - the compiled XQuery expression
      evaluator - the dynamic query context
      Throws:
      SaxonApiException - if processing fails
    • runQuery

      protected void runQuery(XQueryExecutable exp, XQueryEvaluator evaluator, Source input, Destination destination) throws SaxonApiException
      Run the query
      Parameters:
      exp - the compiled query expression
      evaluator - the dynamic query context
      input - the supplied source
      destination - the destination for serialized results
      Throws:
      SaxonApiException - if the query fails
    • runUpdate

      protected void runUpdate(XQueryExecutable exp, XQueryEvaluator evaluator, Serializer serializer) throws SaxonApiException
      Run an updating query
      Parameters:
      exp - the compiled query expression
      evaluator - the query evaluator
      serializer - the destination for serialized results
      Throws:
      SaxonApiException - if the query 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
    • createFileIfNecessary

      public static void createFileIfNecessary(File file) throws IOException
      Utility method to create a file if it does not already exist, including creation of any necessary directories named in the file path
      Parameters:
      file - the file that is required to exist
      Throws:
      IOException - if file creation fails