Package net.sf.saxon

Class Query

  • Direct Known Subclasses:
    JDOMQuery

    public class Query
    extends java.lang.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 Detail

      • showTime

        protected boolean showTime
      • repeat

        protected int repeat
      • sourceFileName

        protected java.lang.String sourceFileName
      • queryFileName

        protected java.lang.String queryFileName
      • useURLs

        protected boolean useURLs
      • outputFileName

        protected java.lang.String outputFileName
      • moduleURIResolverClass

        protected java.lang.String moduleURIResolverClass
      • uriResolverClass

        protected java.lang.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 java.lang.String explainOutputFileName
    • Constructor Detail

      • Query

        public Query()
    • Method Detail

      • makeConfiguration

        protected Configuration makeConfiguration​(boolean schemaAware,
                                                  java.lang.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​(java.lang.String[] args)
                         throws java.lang.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:
        java.lang.Exception - Indicates that a compile-time or run-time error occurred
      • doQuery

        protected void doQuery​(java.lang.String[] args,
                               java.lang.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​(java.lang.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​(java.lang.String[] args,
                                    java.lang.String command,
                                    DynamicQueryContext dynamicEnv,
                                    java.util.Properties outputProps)
                             throws javax.xml.transform.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:
        javax.xml.transform.TransformerException - if failures occur. Note, the method may also invoke System.exit().
      • loadAdditionalSchemas

        protected static void loadAdditionalSchemas​(Configuration config,
                                                    java.lang.String additionalSchemas)
                                             throws javax.xml.transform.TransformerException
        Throws:
        javax.xml.transform.TransformerException
      • processSourceFile

        protected javax.xml.transform.Source processSourceFile​(java.lang.String sourceFileName,
                                                               boolean useURLs)
                                                        throws javax.xml.transform.TransformerException
        Throws:
        javax.xml.transform.TransformerException
      • compileQuery

        protected XQueryExpression compileQuery​(StaticQueryContext staticEnv,
                                                java.lang.String queryFileName,
                                                boolean useURLs)
                                         throws XPathException,
                                                java.io.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
        java.io.IOException - if the query cannot be read
      • explain

        protected void explain​(XQueryExpression exp)
                        throws java.io.FileNotFoundException,
                               XPathException
        Explain the results of query compilation
        Parameters:
        exp - the compiled expression
        Throws:
        java.io.FileNotFoundException - if the destination for the explanation doesn't exist
        XPathException - if other failures occur
      • processSource

        protected void processSource​(javax.xml.transform.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,
                                java.io.OutputStream destination,
                                java.util.Properties outputProps)
                         throws XPathException,
                                java.io.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
        java.io.IOException - if input or output fails
      • quit

        protected static void quit​(java.lang.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​(java.lang.String name,
                                java.lang.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