net.sf.saxon

Class 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 booleanbackup
protected Configurationconfig
protected booleanexplain
protected StringexplainOutputFileName
protected StringlanguageVersion
protected StringmoduleURIResolverClass
protected StringoutputFileName
protected PropertiesoutputProperties
protected booleanprojection
protected booleanpullMode
protected StringqueryFileName
protected intrepeat
protected booleanshowTime
protected StringsourceFileName
protected booleanupdating
protected StringuriResolverClass
protected booleanuseURLs
protected booleanwrap
protected booleanwriteback
Method Summary
protected voidbadUsage(String name, String message)
Report incorrect usage of the command line, with a list of the options and arguments that are available
protected XQueryExpressioncompileQuery(StaticQueryContext staticEnv, String queryFileName, boolean useURLs)
Compile the query
protected voiddoQuery(String[] args, String command)
Support method for main program.
protected voidexplain(XQueryExpression exp)
Explain the results of query compilation
protected ConfigurationgetConfiguration()
Get the configuration in use
protected static voidloadAdditionalSchemas(Configuration config, String additionalSchemas)
static voidmain(String[] args)
Main program, can be used directly from the command line.
protected voidparseOptions(String[] args, String command, StaticQueryContext staticEnv, DynamicQueryContext dynamicEnv)
Parse the options supplied on the command line
protected voidprocessSource(Source sourceInput, XQueryExpression exp, DynamicQueryContext dynamicEnv)
Process the supplied source file
protected SourceprocessSourceFile(String sourceFileName, boolean useURLs)
protected static voidquit(String message, int code)
Exit with a message
protected voidrunQuery(XQueryExpression exp, DynamicQueryContext dynamicEnv, OutputStream destination, Properties outputProps)
Run the query
protected booleantestIfSchemaAware(String[] args)
Prescan the command line arguments to see if any of them imply use of a schema-aware processor

Field Detail

backup

protected boolean backup

config

protected Configuration config

explain

protected boolean explain

explainOutputFileName

protected String explainOutputFileName

languageVersion

protected String languageVersion

moduleURIResolverClass

protected String moduleURIResolverClass

outputFileName

protected String outputFileName

outputProperties

protected Properties outputProperties

projection

protected boolean projection

pullMode

protected boolean pullMode

queryFileName

protected String queryFileName

repeat

protected int repeat

showTime

protected boolean showTime

sourceFileName

protected String sourceFileName

updating

protected boolean updating

uriResolverClass

protected String uriResolverClass

useURLs

protected boolean useURLs

wrap

protected boolean wrap

writeback

protected boolean writeback

Method Detail

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

compileQuery

protected XQueryExpression compileQuery(StaticQueryContext staticEnv, String queryFileName, boolean useURLs)
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

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

explain

protected void explain(XQueryExpression exp)
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

getConfiguration

protected Configuration getConfiguration()
Get the configuration in use

Returns: the configuration

loadAdditionalSchemas

protected static void loadAdditionalSchemas(Configuration config, String additionalSchemas)

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

Throws: Exception Indicates that a compile-time or run-time error occurred

parseOptions

protected void parseOptions(String[] args, String command, StaticQueryContext staticEnv, DynamicQueryContext dynamicEnv)
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().

processSource

protected void processSource(Source sourceInput, XQueryExpression exp, DynamicQueryContext dynamicEnv)
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

processSourceFile

protected Source processSourceFile(String sourceFileName, boolean useURLs)

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

runQuery

protected void runQuery(XQueryExpression exp, DynamicQueryContext dynamicEnv, OutputStream destination, Properties outputProps)
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

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