Package net.sf.saxon
Class Transform
java.lang.Object
net.sf.saxon.Transform
- Direct Known Subclasses:
DOMTransform
,JDOMTransform
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
FieldsModifier and TypeFieldDescriptionprotected Configuration
protected TransformerFactoryImpl
protected int
protected boolean
protected boolean
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected void
Report incorrect usage of the command line, with a list of the options and arguments that are availablevoid
doTransform
(String[] args, String command) Support method for main program.protected Configuration
Get the configuration.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 URLstatic void
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 millisecondspreprocess
(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 stylesheetvoid
processDirectoryAssoc
(List sources, File outputDir, ArrayList parameterList, String initialMode, PrintStream traceDestination) Process each file in the source directory using its own associated stylesheetvoid
processFile
(Source source, Templates sheet, File outputFile, ArrayList parameterList, String initialTemplate, String initialMode, PrintStream traceDestination) Process a single file using a supplied stylesheetvoid
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
Exit with a messagevoid
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.
-
Field Details
-
factory
-
config
-
useURLs
protected boolean useURLs -
showTime
protected boolean showTime -
repeat
protected int repeat
-
-
Constructor Details
-
Transform
public Transform()
-
-
Method Details
-
main
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
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-awareclassName
- Name of the schema-aware Configuration class to be loaded. Designed for use by .NET; can normally be null.- Throws:
RuntimeException
-
doTransform
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 argumentscommand
- the form of the command as written by the user, to be used in error messages
-
preprocess
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
Get the configuration.- Returns:
- the Saxon configuration
-
quit
Exit with a message- Parameters:
message
- The message to be outputcode
- 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 directoryuseURLs
- true if the filename argument is to be treated as a URIconfig
- the Saxon configurationuseSAXSource
- 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 processedoutputDir
- The directory in which output files are to be createdparameterList
- List of parameters to be supplied to each transformationinitialMode
- Initial mode for executing each transformationtraceDestination
- 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 transformedlocalName
- The local name of the file within the directory, excluding the file type suffixoutputFile
- The output file to contain the results of the transformationparameterList
- List of parameters to be supplied to the transformationinitialMode
- Initial mode for executing the transformationtraceDestination
- Destination for trace output- Throws:
XPathException
- If the transformation failsTransformerException
-
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 stylesheetparameterList
- A list of "keyword=value" pairs representing parameter values, in their original format from the command line, including any initial "+" or "!" qualifiertraceDestination
- destination for trace outputinitialMode
- the initial mode for the transformation, as a Clark name. Can be nullinitialTemplate
- 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 processedsheet
- The Templates object identifying the stylesheetoutputDir
- The directory in which output files are to be createdparameterList
- List of parameters to be supplied to each transformationinitialTemplate
- Initial template for executing each transformationinitialMode
- Initial mode for executing each transformationtraceDestination
- Destination for output from fn:trace() calls- Throws:
XPathException
- when any error occurs during a transformationTransformerException
-
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 stylesheetoutputFile
- The output file to contain the results of the transformationparameterList
- List of parameters to be supplied to the transformationinitialTemplate
- Initial template for executing each transformationinitialMode
- Initial mode for executing the transformationtraceDestination
- Destination for output from fn:trace() function- Throws:
XPathException
- If the transformation failsTransformerException
-
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 transformationparameterList
- 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
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
-