net.sf.saxon
Class Transform

java.lang.Object
  extended by net.sf.saxon.Transform
Direct Known Subclasses:
DOMTransform, JDOMTransform, Transform

public class Transform
extends 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

Field Summary
protected  CompilerInfo compilerInfo
           
protected  Configuration config
           
protected  DateTimeValue currentDateTime
           
protected  int repeat
           
protected  boolean showTime
           
protected  boolean useURLs
           
 
Constructor Summary
Transform()
           
 
Method Summary
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
 void doTransform(String[] args, String command)
          Support method for main program.
protected  Configuration getConfiguration()
          Get the configuration.
 PreparedStylesheet loadCompiledStylesheet(String fileName)
          Load a PreparedStylesheet from a compiled stylesheet stored in a file.
static Object loadDocuments(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(String[] args)
          Main program, can be used directly from the command line.
protected  Controller newController(Templates sheet, ArrayList parameterList, PrintStream traceDestination, String initialMode, String initialTemplate)
          Create a new Controller.
static long now()
          Get current time in milliseconds
 List preprocess(List sources)
          Preprocess the list of sources.
 void processDirectory(List sources, Templates sheet, File outputDir, ArrayList parameterList, String initialTemplate, String initialMode, PrintStream traceDestination)
          Process each file in the source directory using the same supplied stylesheet
 void processDirectoryAssoc(List sources, File outputDir, ArrayList parameterList, String initialMode, PrintStream traceDestination)
          Process each file in the source directory using its own associated stylesheet
 void processFile(Source source, Templates sheet, File outputFile, ArrayList parameterList, String initialTemplate, String initialMode, PrintStream traceDestination)
          Process a single file using a supplied stylesheet
 void processFileAssoc(Source sourceInput, String localName, File outputFile, ArrayList parameterList, String initialMode, PrintStream traceDestination)
          Process a single source file using its associated stylesheet(s)
protected static void quit(String message, int code)
          Exit with a message
 void setFactoryConfiguration(boolean schemaAware, String className)
          Set the configuration in the TransformerFactory.
protected  void setParams(Controller controller, 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
 

Field Detail

config

protected Configuration config

compilerInfo

protected CompilerInfo compilerInfo

useURLs

protected boolean useURLs

showTime

protected boolean showTime

repeat

protected int repeat

currentDateTime

protected DateTimeValue currentDateTime
Constructor Detail

Transform

public Transform()
Method Detail

main

public static void main(String[] args)
                 throws 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:
Exception - Indicates that a compile-time or run-time error occurred

setFactoryConfiguration

public void setFactoryConfiguration(boolean schemaAware,
                                    String className)
                             throws 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:
RuntimeException

doTransform

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

preprocess

public List preprocess(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(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 Object loadDocuments(String sourceFileName,
                                   boolean useURLs,
                                   Configuration config,
                                   boolean useSAXSource)
                            throws 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:
TransformerException

processDirectoryAssoc

public void processDirectoryAssoc(List sources,
                                  File outputDir,
                                  ArrayList parameterList,
                                  String initialMode,
                                  PrintStream traceDestination)
                           throws 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:
Exception - when any error occurs during a transformation

processFileAssoc

public void processFileAssoc(Source sourceInput,
                             String localName,
                             File outputFile,
                             ArrayList parameterList,
                             String initialMode,
                             PrintStream traceDestination)
                      throws 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
TransformerException

newController

protected Controller newController(Templates sheet,
                                   ArrayList parameterList,
                                   PrintStream traceDestination,
                                   String initialMode,
                                   String initialTemplate)
                            throws 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:
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(List sources,
                             Templates sheet,
                             File outputDir,
                             ArrayList parameterList,
                             String initialTemplate,
                             String initialMode,
                             PrintStream traceDestination)
                      throws 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
TransformerException

processFile

public void processFile(Source source,
                        Templates sheet,
                        File outputFile,
                        ArrayList parameterList,
                        String initialTemplate,
                        String initialMode,
                        PrintStream traceDestination)
                 throws 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
TransformerException

setParams

protected void setParams(Controller controller,
                         ArrayList parameterList)
                  throws 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:
TransformerException

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

loadCompiledStylesheet

public PreparedStylesheet loadCompiledStylesheet(String fileName)
                                          throws IOException,
                                                 ClassNotFoundException
Load a PreparedStylesheet from a compiled stylesheet stored in a file.

Parameters:
fileName - The name of the file containing the compiled stylesheet (which is just the Java serialization of a PreparedStylesheet object).
Returns:
the PreparedStylesheet, which can be used in JAXP interfaces as the Templates object
Throws:
IOException
ClassNotFoundException


Copyright (c) Saxonica Limited. All rights reserved.