Package net.sf.saxon

Class Transform

  • Direct Known Subclasses:
    DOMTransform, JDOM2Transform, Transform

    public class Transform
    extends java.lang.Object
    This Transform class is the command-line entry point to the Saxon XSLT Processor.

    It is possible to subclass this class to provide a customized command line interface. In writing such a subclass:

    • Field Detail

      • useURLs

        protected boolean useURLs
      • showTime

        protected boolean showTime
      • repeat

        protected int repeat
      • sourceParserName

        protected java.lang.String sourceParserName
      • schemaAware

        protected boolean schemaAware
      • allowExit

        protected boolean allowExit
      • run

        protected boolean run
    • Constructor Detail

      • Transform

        public Transform()
    • Method Detail

      • 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.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
      • setPermittedOptions

        public void setPermittedOptions​(CommandLineOptions options)
        Set the options that are recognized on the command line. This method can be overridden in a subclass to define additional command line options.
        Parameters:
        options - the CommandLineOptions in which the recognized options are to be registered.
      • 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. 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
      • setFactoryConfiguration

        public void setFactoryConfiguration​(boolean schemaAware,
                                            java.lang.String className)
                                     throws LicenseException
        Customisation hook called immediately after the Configuration object is instantiated. This hook is retained for backwards compatibility but it is recommended to implement initializeConfiguration(net.sf.saxon.Configuration) in preference. This method is called after initializeConfiguration(net.sf.saxon.Configuration), but only if the configuration was not created using a configuration file. The default implementation does nothing.
        Parameters:
        schemaAware - True if the transformation is to be schema-aware
        className - Always null.
        Throws:
        LicenseException - can be thrown if there is no valid license available
      • applyLocalOptions

        protected void applyLocalOptions​(CommandLineOptions options,
                                         Configuration config)
        Customisation hook: apply options defined locally in a subclass. This method allows a subclass to recognize and implement command line options that are not recognized by the superclass. To prevent Saxon rejecting such options as errors, the method setPermittedOptions(net.sf.saxon.trans.CommandLineOptions) must be overridden in the subclass to add details of options recognized in the subclass.
        Parameters:
        options - the CommandLineOptions. This will contain details of all the options that were specified on the command line. Those that are recognized by the standard Saxon command line interface will already have been processed; other options can now be processed by the subclass.
        config - the Saxon Configuration
      • preprocess

        public java.util.List<javax.xml.transform.Source> preprocess​(java.util.List<javax.xml.transform.Source> sources)
                                                              throws XPathException
        Preprocess the list of sources. This method exists so that it can be overridden in a subclass, typically to handle kinds of Source implemented as extensions to the basic Saxon capability
        Parameters:
        sources - the list of Source objects
        Returns:
        a revised list of Source objects
        Throws:
        XPathException - if a Source object is not recognized
      • getConfiguration

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

        protected Xslt30Transformer newTransformer​(XsltExecutable sheet,
                                                   CommandLineOptions options)
                                            throws SaxonApiException
        Create a new Transformer. This method is protected so it can be overridden in a subclass, allowing additional options to be set on the Transformer
        Parameters:
        sheet - The XsltExecutable object representing the compiled stylesheet
        options - The commmand line options
        Returns:
        the newly constructed Controller to be used for the transformation
        Throws:
        SaxonApiException - if any error occurs
      • now

        protected static long now()
        Get current time in nanoseconds
        Returns:
        the current time in nanoseconds (since VM startup)
      • processFile

        protected void processFile​(javax.xml.transform.Source source,
                                   XsltExecutable sheet,
                                   java.io.File outputFile,
                                   CommandLineOptions options)
                            throws SaxonApiException
        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
        options - The command line options
        Throws:
        SaxonApiException - If the transformation fails
      • 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