weblogic.apache.xalan.lib
Class Redirect
java.lang.Object
|
+--weblogic.apache.xalan.lib.Redirect
- public class Redirect
- extends java.lang.Object
Implements three extension elements to allow an XSLT transformation to
redirect its output to multiple output files.
You must declare the Xalan namespace (xmlns:lxslt="http://xml.apache.org/xslt"),
a namespace for the extension prefix (such as xmlns:redirect="weblogic.apache.xalan.lib.Redirect"),
and declare the extension namespace as an extension (extension-element-prefixes="redirect").
You can either just use redirect:write, in which case the file will be
opened and immediately closed after the write, or you can bracket the
write calls by redirect:open and redirect:close, in which case the
file will be kept open for multiple writes until the close call is
encountered. Calls can be nested. Calls can take a 'file' attribute
and/or a 'select' attribute in order to get the filename. If a select
attribute is encountered, it will evaluate that expression for a string
that indicates the filename. If the string evaluates to empty, it will
attempt to use the 'file' attribute as a default. Filenames can be relative
or absolute. If they are relative, the base directory will be the same as
the base directory for the output document. This is obtained by calling
getOutputTarget() on the TransformerImpl. You can set this base directory
by calling TransformerImpl.setOutputTarget() or it is automatically set
when using the two argument form of transform() or transformNode().
Example:
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/XSL/Transform/1.0"
xmlns:lxslt="http://xml.apache.org/xslt"
xmlns:redirect="weblogic.apache.xalan.lib.Redirect"
extension-element-prefixes="redirect">
<xsl:template match="/">
<out>
default output.
</out>
<redirect:open file="doc3.out"/>
<redirect:write file="doc3.out">
<out>
<redirect:write file="doc1.out">
<out>
doc1 output.
<redirect:write file="doc3.out">
Some text to doc3
</redirect:write>
</out>
</redirect:write>
<redirect:write file="doc2.out">
<out>
doc2 output.
<redirect:write file="doc3.out">
Some more text to doc3
<redirect:write select="doc/foo">
text for doc4
</redirect:write>
</redirect:write>
</out>
</redirect:write>
</out>
</redirect:write>
<redirect:close file="doc3.out"/>
</xsl:template>
</xsl:stylesheet>
- Version:
- 1.0
- Author:
- Scott Boag
Copyright © 2001 BEA Systems, Inc. All Rights Reserved.
- See Also:
- Example with Redirect extension
Field Summary
|
protected java.util.Hashtable |
m_formatterListeners
List of formatter listeners indexed by filename. |
protected java.util.Hashtable |
m_outputStreams
List of output streams indexed by filename. |
Methods inherited from class java.lang.Object |
clone,
equals,
finalize,
getClass,
hashCode,
notify,
notifyAll,
toString,
wait,
wait,
wait |
m_formatterListeners
protected java.util.Hashtable m_formatterListeners
- List of formatter listeners indexed by filename.
m_outputStreams
protected java.util.Hashtable m_outputStreams
- List of output streams indexed by filename.
Redirect
public Redirect()
open
public void open(XSLProcessorContext context,
ElemExtensionCall elem)
throws java.net.MalformedURLException,
java.io.FileNotFoundException,
java.io.IOException,
javax.xml.transform.TransformerException
- Open the given file and put it in the XML, HTML, or Text formatter listener's table.
write
public void write(XSLProcessorContext context,
ElemExtensionCall elem)
throws java.net.MalformedURLException,
java.io.FileNotFoundException,
java.io.IOException,
javax.xml.transform.TransformerException
- Write the evalutation of the element children to the given file. Then close the file
unless it was opened with the open extension element and is in the formatter listener's table.
close
public void close(XSLProcessorContext context,
ElemExtensionCall elem)
throws java.net.MalformedURLException,
java.io.FileNotFoundException,
java.io.IOException,
javax.xml.transform.TransformerException
- Close the given file and remove it from the formatter listener's table.
WebLogic classes and methods that do not appear in this reference are not public and are not supported.