Package net.sf.saxon

Class Transform

  • Direct Known Subclasses:
    DOMTransform, JDOMTransform

    public class Transform
    extends java.lang.Object
    This Transform class is the entry point to the Saxon XSLT Processor. This class is provided to control the processor from the command line.

    The XSLT syntax supported conforms to the W3C XSLT 1.0 and XPath 1.0 recommendation. Only the transformation language is implemented (not the formatting objects). Saxon extensions are documented in the file extensions.html

    Author:
    Michael H. Kay
    • Constructor Summary

      Constructors 
      Constructor Description
      Transform()  
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      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
      void doTransform​(java.lang.String[] args, java.lang.String command)
      Support method for main program.
      protected Configuration getConfiguration()
      Get the configuration.
      static java.lang.Object loadDocuments​(java.lang.String sourceFileName, boolean useURLs, Configuration config, boolean useSAXSource)
      Load a document, or all the documents in a directory, given a filename or URL
      static void main​(java.lang.String[] args)
      Main program, can be used directly from the command line.
      protected Controller newController​(javax.xml.transform.Templates sheet, java.util.ArrayList parameterList, java.io.PrintStream traceDestination, java.lang.String initialMode, java.lang.String initialTemplate)
      Create a new Controller.
      static long now()
      Get current time in milliseconds
      java.util.List preprocess​(java.util.List sources)
      Preprocess the list of sources.
      void processDirectory​(java.util.List sources, javax.xml.transform.Templates sheet, java.io.File outputDir, java.util.ArrayList parameterList, java.lang.String initialTemplate, java.lang.String initialMode, java.io.PrintStream traceDestination)
      Process each file in the source directory using the same supplied stylesheet
      void processDirectoryAssoc​(java.util.List sources, java.io.File outputDir, java.util.ArrayList parameterList, java.lang.String initialMode, java.io.PrintStream traceDestination)
      Process each file in the source directory using its own associated stylesheet
      void processFile​(javax.xml.transform.Source source, javax.xml.transform.Templates sheet, java.io.File outputFile, java.util.ArrayList parameterList, java.lang.String initialTemplate, java.lang.String initialMode, java.io.PrintStream traceDestination)
      Process a single file using a supplied stylesheet
      void processFileAssoc​(javax.xml.transform.Source sourceInput, java.lang.String localName, java.io.File outputFile, java.util.ArrayList parameterList, java.lang.String initialMode, java.io.PrintStream traceDestination)
      Process a single source file using its associated stylesheet(s)
      protected static void quit​(java.lang.String message, int code)
      Exit with a message
      void setFactoryConfiguration​(boolean schemaAware, java.lang.String className)
      Set the configuration in the TransformerFactory.
      protected void setParams​(Controller controller, java.util.ArrayList parameterList)
      Supply the requested parameters to the transformer.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • Transform

        public Transform()
    • Method Detail

      • 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.Transform [options] source-file style-file >output-file

        followed by any number of parameters in the form {keyword=value}... which can be referenced from within the stylesheet.

        This program applies the XSL style sheet in style-file to the source XML document in source-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
      • setFactoryConfiguration

        public void setFactoryConfiguration​(boolean schemaAware,
                                            java.lang.String className)
                                     throws java.lang.RuntimeException
        Set the configuration in the TransformerFactory. This is designed to be overridden in a subclass
        Parameters:
        schemaAware - True if the transformation is to be schema-aware
        className - Name of the schema-aware Configuration class to be loaded. Designed for use by .NET; can normally be null.
        Throws:
        java.lang.RuntimeException
      • doTransform

        public void doTransform​(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 - the form of the command as written by the user, to be used in error messages
      • preprocess

        public java.util.List preprocess​(java.util.List sources)
                                  throws XPathException
        Preprocess the list of sources. This method exists so that it can be overridden in a subclass
        Parameters:
        sources - the list of Source objects
        Returns:
        a revised list of Source objects
        Throws:
        XPathException
      • getConfiguration

        protected Configuration getConfiguration()
        Get the configuration.
        Returns:
        the Saxon configuration
      • 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
      • loadDocuments

        public static java.lang.Object loadDocuments​(java.lang.String sourceFileName,
                                                     boolean useURLs,
                                                     Configuration config,
                                                     boolean useSAXSource)
                                              throws javax.xml.transform.TransformerException
        Load a document, or all the documents in a directory, given a filename or URL
        Parameters:
        sourceFileName - the name of the source file or directory
        useURLs - true if the filename argument is to be treated as a URI
        config - the Saxon configuration
        useSAXSource - true if the method should use a SAXSource rather than a StreamSource
        Returns:
        if sourceFileName represents a single source document, return a Source object representing that document. If sourceFileName represents a directory, return a List containing multiple Source objects, one for each file in the directory.
        Throws:
        javax.xml.transform.TransformerException
      • processDirectoryAssoc

        public void processDirectoryAssoc​(java.util.List sources,
                                          java.io.File outputDir,
                                          java.util.ArrayList parameterList,
                                          java.lang.String initialMode,
                                          java.io.PrintStream traceDestination)
                                   throws java.lang.Exception
        Process each file in the source directory using its own associated stylesheet
        Parameters:
        sources - The sources in the directory to be processed
        outputDir - The directory in which output files are to be created
        parameterList - List of parameters to be supplied to each transformation
        initialMode - Initial mode for executing each transformation
        traceDestination - output destination for fn:trace() calls
        Throws:
        java.lang.Exception - when any error occurs during a transformation
      • processFileAssoc

        public void processFileAssoc​(javax.xml.transform.Source sourceInput,
                                     java.lang.String localName,
                                     java.io.File outputFile,
                                     java.util.ArrayList parameterList,
                                     java.lang.String initialMode,
                                     java.io.PrintStream traceDestination)
                              throws javax.xml.transform.TransformerException
        Process a single source file using its associated stylesheet(s)
        Parameters:
        sourceInput - Identifies the source file to be transformed
        localName - The local name of the file within the directory, excluding the file type suffix
        outputFile - The output file to contain the results of the transformation
        parameterList - List of parameters to be supplied to the transformation
        initialMode - Initial mode for executing the transformation
        traceDestination - Destination for trace output
        Throws:
        XPathException - If the transformation fails
        javax.xml.transform.TransformerException
      • newController

        protected Controller newController​(javax.xml.transform.Templates sheet,
                                           java.util.ArrayList parameterList,
                                           java.io.PrintStream traceDestination,
                                           java.lang.String initialMode,
                                           java.lang.String initialTemplate)
                                    throws javax.xml.transform.TransformerException
        Create a new Controller. This method is protected so it can be overridden in a subclass, allowing additional options to be set on the Controller
        Parameters:
        sheet - The Templates object representing the compiled stylesheet
        parameterList - A list of "keyword=value" pairs representing parameter values, in their original format from the command line, including any initial "+" or "!" qualifier
        traceDestination - destination for trace output
        initialMode - the initial mode for the transformation, as a Clark name. Can be null
        initialTemplate - the name of the initial template for the transformation, as a Clark name. Can be null
        Returns:
        the newly constructed Controller to be used for the transformation
        Throws:
        javax.xml.transform.TransformerException - if any error occurs
      • now

        public static long now()
        Get current time in milliseconds
        Returns:
        the current time in milliseconds since 1970
      • processDirectory

        public void processDirectory​(java.util.List sources,
                                     javax.xml.transform.Templates sheet,
                                     java.io.File outputDir,
                                     java.util.ArrayList parameterList,
                                     java.lang.String initialTemplate,
                                     java.lang.String initialMode,
                                     java.io.PrintStream traceDestination)
                              throws javax.xml.transform.TransformerException
        Process each file in the source directory using the same supplied stylesheet
        Parameters:
        sources - The sources in the directory to be processed
        sheet - The Templates object identifying the stylesheet
        outputDir - The directory in which output files are to be created
        parameterList - List of parameters to be supplied to each transformation
        initialTemplate - Initial template for executing each transformation
        initialMode - Initial mode for executing each transformation
        traceDestination - Destination for output from fn:trace() calls
        Throws:
        XPathException - when any error occurs during a transformation
        javax.xml.transform.TransformerException
      • processFile

        public void processFile​(javax.xml.transform.Source source,
                                javax.xml.transform.Templates sheet,
                                java.io.File outputFile,
                                java.util.ArrayList parameterList,
                                java.lang.String initialTemplate,
                                java.lang.String initialMode,
                                java.io.PrintStream traceDestination)
                         throws javax.xml.transform.TransformerException
        Process a single file using a supplied stylesheet
        Parameters:
        source - The source XML document to be transformed (maybe null if an initial template is specified)
        sheet - The Templates object identifying the stylesheet
        outputFile - The output file to contain the results of the transformation
        parameterList - List of parameters to be supplied to the transformation
        initialTemplate - Initial template for executing each transformation
        initialMode - Initial mode for executing the transformation
        traceDestination - Destination for output from fn:trace() function
        Throws:
        XPathException - If the transformation fails
        javax.xml.transform.TransformerException
      • setParams

        protected void setParams​(Controller controller,
                                 java.util.ArrayList parameterList)
                          throws javax.xml.transform.TransformerException
        Supply the requested parameters to the transformer. This method is protected so that it can be overridden in a subclass.
        Parameters:
        controller - The controller to be used for the transformation
        parameterList - A list of "keyword=value" pairs representing parameter values, in their original format from the command line, including any initial "+" or "!" qualifier
        Throws:
        javax.xml.transform.TransformerException
      • 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