BEA Systems, Inc.

WebLogic Server 6.1 API Reference

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>
 

This class is based on an implementation from the Apache XML Project. In future releases the XML parser, XSLT processor, and associated classes will likely be updated to be based on a later version of the Apache implementations. Since Apache does not guarantee backwards compatibility between versions of their software, we cannot guarantee backwards compatibility of any of the classes contained in the weblogic.apache package or sub-packages.

Version:
1.0
Author:
Scott Boag

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.
 
Constructor Summary
Redirect()
           
 
Method Summary
 void close(XSLProcessorContext context, ElemExtensionCall elem)
          Close the given file and remove it from the formatter listener's table.
 void open(XSLProcessorContext context, ElemExtensionCall elem)
          Open the given file and put it in the XML, HTML, or Text formatter listener's table.
 void write(XSLProcessorContext context, ElemExtensionCall elem)
          Write the evalutation of the element children to the given file.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

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.
Constructor Detail

Redirect

public Redirect()
Method Detail

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.

Documentation is available at
http://download.oracle.com/docs/cd/E13222_01/wls/docs61

WebLogic classes and methods that do not appear in this reference are not public and are not supported.