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

      protected boolean updating
    • writeback

      protected boolean writeback
    • backup

      protected boolean backup
    • explainOutputFileName

      protected String explainOutputFileName
  • Constructor Details

    • Query

      public Query()
  • Method Details

    • makeConfiguration

      protected Configuration makeConfiguration(boolean schemaAware, 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(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
    • 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
    • testIfSchemaAware

      protected boolean testIfSchemaAware(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(String[] args, String command, DynamicQueryContext dynamicEnv, Properties outputProps) throws 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:
      TransformerException - if failures occur. Note, the method may also invoke System.exit().
    • loadAdditionalSchemas

      protected static void loadAdditionalSchemas(Configuration config, String additionalSchemas) throws TransformerException
      Throws:
      TransformerException
    • 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 name, 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