Package net.sf.saxon

Class Query

  • Direct Known Subclasses:
    JDOM2Query, Query

    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.

    • Field Detail

      • showTime

        protected boolean showTime
      • repeat

        protected int repeat
      • sourceXmlFileName

        protected java.lang.String sourceXmlFileName
      • sourceJsonFileName

        protected java.lang.String sourceJsonFileName
      • queryFileName

        protected java.lang.String queryFileName
      • useURLs

        protected boolean useURLs
      • outputFileName

        protected java.lang.String outputFileName
      • moduleURIResolverClass

        protected java.lang.String moduleURIResolverClass
      • explaining

        protected boolean explaining
      • 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 java.lang.String explainOutputFileName
      • languageVersion

        protected java.lang.String languageVersion
      • nsOption

        protected java.lang.String nsOption
    • Constructor Detail

      • Query

        public Query()
    • Method Detail

      • getConfiguration

        protected Configuration getConfiguration()
        Get the configuration in use
        Returns:
        the configuration
      • main

        public static void main​(java.lang.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
      • doQuery

        public void doQuery​(java.lang.String[] args)
        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
      • doQuery

        public 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 - not used, retained for backwards compatibility
      • initializeConfiguration

        protected void initializeConfiguration​(Configuration config)
        Customisation hook called immediately after the Configuration object is instantiated. The intended purpose of this hook is to allow a subclass to supply an OEM license key programmatically, but it can also be used for other initialization of the Configuration. This method is called before analyzing the command line options, so configuration settings made at this stage may be overridden when the command line options are processed. However, if a configuration file is used, the settings defined in the configuration file will have been applied.
        Parameters:
        config - the Configuration object
      • 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 javax.xml.transform.Source processSourceFile​(java.lang.String sourceFileName,
                                                               boolean useURLs)
                                                        throws javax.xml.transform.TransformerException
        Throws:
        javax.xml.transform.TransformerException
      • compileQuery

        protected XQueryExecutable compileQuery​(XQueryCompiler compiler,
                                                java.lang.String queryFileName,
                                                boolean useURLs)
                                         throws SaxonApiException,
                                                java.io.IOException
        Compile the query
        Parameters:
        compiler - the XQuery compiler
        queryFileName - the filename holding the query (or "-" for the standard input, or the actual query text enclosed in curly braces
        useURLs - true if the filename is in the form of a URI
        Returns:
        the compiled query
        Throws:
        SaxonApiException - 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,
                                     XQueryExecutable exp,
                                     XQueryEvaluator evaluator)
                              throws SaxonApiException
        Process the supplied XML 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,
                                javax.xml.transform.Source input,
                                Destination destination)
                         throws SaxonApiException
        Run the query
        Parameters:
        exp - the compiled query expression
        evaluator - the dynamic query context
        input - the supplied XML source if any
        destination - the destination for serialized results
        Throws:
        SaxonApiException - if the query fails
      • quit

        protected 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 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​(java.io.File file)
                                          throws java.io.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:
        java.io.IOException - if file creation fails