Xalan-Java: Class Redirect

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.apache.xalan.xslt.extensions
Class Redirect

    java.lang.Object
      |
      +--org.apache.xalan.xslt.extensions.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="org.apache.xalan.xslt.extensions.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 (setOutputFileName(outFileName) must be called first on the processor when using the API).

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="org.apache.xalan.xslt.extensions.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>

See Also:
  Example with Redirect extension

Constructor Summary
`Redirect()`

Method Summary
`void` | `close(XSLProcessorContext context, org.w3c.dom.Element elem)` Close the given file and remove it from the formatter listener's table.
`void` | `open(XSLProcessorContext context, org.w3c.dom.Element elem)` Open the given file and put it in the XML, HTML, or Text formatter listener's table.
`void` | `write(XSLProcessorContext context, org.w3c.dom.Element elem)` Write the evalutation of the element children to the given file.

Methods inherited from class java.lang.Object
`equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### Redirect

    public Redirect()

Method Detail

### open

    public void open(XSLProcessorContext context,
                     org.w3c.dom.Element elem)
              throws java.net.MalformedURLException,
                     java.io.FileNotFoundException,
                     java.io.IOException,
                     org.xml.sax.SAXException

  Open the given file and put it in the XML, HTML, or Text formatter listener's table.

### write

    public void write(XSLProcessorContext context,
                      org.w3c.dom.Element elem)
               throws java.net.MalformedURLException,
                      java.io.FileNotFoundException,
                      java.io.IOException,
                      org.xml.sax.SAXException

  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,
                      org.w3c.dom.Element elem)
               throws java.net.MalformedURLException,
                      java.io.FileNotFoundException,
                      java.io.IOException,
                      org.xml.sax.SAXException

  Close the given file and remove it from the formatter listener's table.

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2000 Apache XML Project. All Rights Reserved.