net.sf.saxon
Class Query

java.lang.Object
  extended by 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  String 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 badUsage(String name, 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
protected static void loadAdditionalSchemas(Configuration config, String additionalSchemas)
           
static void main(String[] args)
          Main program, can be used directly from the command line.
protected  void parseOptions(String[] args, String command, StaticQueryContext staticEnv, 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
protected  boolean testIfSchemaAware(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

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 String 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

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,
                            StaticQueryContext staticEnv,
                            DynamicQueryContext dynamicEnv)
                     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
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


Copyright (c) Saxonica Limited. All rights reserved.