org.apache.commons.jelly.tags.xml
Class TransformTag

java.lang.Object
  |
  +--org.apache.commons.jelly.TagSupport
        |
        +--org.apache.commons.jelly.tags.xml.ParseTagSupport
              |
              +--org.apache.commons.jelly.tags.xml.ParseTag
                    |
                    +--org.apache.commons.jelly.tags.xml.TransformTag
All Implemented Interfaces:
org.apache.commons.jelly.Tag

public class TransformTag
extends ParseTag

A tag which parses some XML, applies an xslt transform to it and defines a variable with the transformed Document. The XML can either be specified as its body or can be passed in via the xml property which can be a Reader, InputStream, URL or String URI. The XSL can be passed in via the xslt property which can be a Reader, InputStream, URL or String URI.

Version:
$Revision: 1.6 $
Author:
Robert Leftwich

Fields inherited from class org.apache.commons.jelly.TagSupport
body, context, hasTrimmed, parent, shouldTrim
 
Constructor Summary
TransformTag()
          Constructor for TransformTag.
 
Method Summary
protected  javax.xml.transform.Result createSAXResult(org.apache.commons.jelly.XMLOutput output)
          Factory method to create a new SAXResult for the given XMLOutput so that the output of an XSLT transform will go directly into the XMLOutput that we are given.
protected  javax.xml.transform.URIResolver createURIResolver()
          Creates a new URI Resolver so that URIs inside the XSLT document can be resolved using the JellyContext
protected  org.xml.sax.XMLReader createXMLReader()
          Factory method to create a new XMLReader for this tag so that the input of the XSLT transform comes from either the xml var, the nested tag or the tag body.
 void doTag(org.apache.commons.jelly.XMLOutput output)
          Process this tag instance
protected  org.xml.sax.InputSource getInputSourceFromObj(java.lang.Object sourceObj)
          Helper method to get an xml input source for the supplied object
protected  javax.xml.transform.sax.SAXSource getObjAsSAXSource(java.lang.Object saxSourceObj)
          Helper method to convert the specified object to a SAX source
protected  org.xml.sax.InputSource getXMLInputSource()
          Helper method to get the appropriate xml input source so that the input of the XSLT transform comes from either the xml var, the nested tag or the tag body.
 java.lang.Object getXslt()
          Gets the source of the XSL which is either a String URI, Reader or InputStream
 void invokeNestedTagsOfType(org.apache.commons.jelly.impl.WeakReferenceWrapperScript wrws, java.lang.Class clazz, org.apache.commons.jelly.JellyContext context, org.apache.commons.jelly.XMLOutput output)
          Locates all child TagScripts, whose tags are of the type given.
 void setParameterValue(java.lang.String name, java.lang.Object value)
           
 void setXslt(java.lang.Object xslt)
          Sets the source of the XSL which is either a String URI, Reader or InputStream
 
Methods inherited from class org.apache.commons.jelly.tags.xml.ParseTag
createSAXReader, getValidate, getXml, getXmlDocument, setValidate, setXml
 
Methods inherited from class org.apache.commons.jelly.tags.xml.ParseTagSupport
getSAXReader, getText, getVar, parse, parseBody, parseText, setSAXReader, setText, setVar
 
Methods inherited from class org.apache.commons.jelly.TagSupport
findAncestorWithClass, findAncestorWithClass, findAncestorWithClass, findAncestorWithClass, findAncestorWithClass, findAncestorWithClass, getBody, getBodyText, getBodyText, getContext, getParent, invokeBody, isEscapeText, isTrim, setBody, setContext, setEscapeText, setParent, setTrim, trimBody
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

TransformTag

public TransformTag()
Constructor for TransformTag.
Method Detail

doTag

public void doTag(org.apache.commons.jelly.XMLOutput output)
           throws org.apache.commons.jelly.MissingAttributeException,
                  org.apache.commons.jelly.JellyTagException
Process this tag instance
Overrides:
doTag in class ParseTag
Parameters:
output - The pipeline for xml events
Throws:
java.lang.Exception - - when required attributes are missing

getXslt

public java.lang.Object getXslt()
Gets the source of the XSL which is either a String URI, Reader or InputStream

setXslt

public void setXslt(java.lang.Object xslt)
Sets the source of the XSL which is either a String URI, Reader or InputStream
Parameters:
xslt - The source of the xslt

setParameterValue

public void setParameterValue(java.lang.String name,
                              java.lang.Object value)

createURIResolver

protected javax.xml.transform.URIResolver createURIResolver()
Creates a new URI Resolver so that URIs inside the XSLT document can be resolved using the JellyContext
Returns:
a URI Resolver for the JellyContext

createSAXResult

protected javax.xml.transform.Result createSAXResult(org.apache.commons.jelly.XMLOutput output)
Factory method to create a new SAXResult for the given XMLOutput so that the output of an XSLT transform will go directly into the XMLOutput that we are given.
Parameters:
output - The destination of the transform output
Returns:
A SAXResult for the transfrom output

createXMLReader

protected org.xml.sax.XMLReader createXMLReader()
                                         throws org.xml.sax.SAXException
Factory method to create a new XMLReader for this tag so that the input of the XSLT transform comes from either the xml var, the nested tag or the tag body.
Returns:
XMLReader for the transform input
Throws:
org.xml.sax.SAXException - If the value of the "org.xml.sax.driver" system property is null, or if the class cannot be loaded and instantiated.

getXMLInputSource

protected org.xml.sax.InputSource getXMLInputSource()
Helper method to get the appropriate xml input source so that the input of the XSLT transform comes from either the xml var, the nested tag or the tag body.
Returns:
InputSource for the transform input

getObjAsSAXSource

protected javax.xml.transform.sax.SAXSource getObjAsSAXSource(java.lang.Object saxSourceObj)
Helper method to convert the specified object to a SAX source
Returns:
SAXSource from the source object or null

getInputSourceFromObj

protected org.xml.sax.InputSource getInputSourceFromObj(java.lang.Object sourceObj)
Helper method to get an xml input source for the supplied object
Returns:
InputSource for the object or null

invokeNestedTagsOfType

public void invokeNestedTagsOfType(org.apache.commons.jelly.impl.WeakReferenceWrapperScript wrws,
                                   java.lang.Class clazz,
                                   org.apache.commons.jelly.JellyContext context,
                                   org.apache.commons.jelly.XMLOutput output)
                            throws org.apache.commons.jelly.JellyTagException
Locates all child TagScripts, whose tags are of the type given. These tags are executed with the provided JellyContext and output.

This method is in place to support specific features in the XML tag library and shouldn't be used by anyone at all. This method will be removed in a near-future verison of jelly.

XXX if possible, this is actually more bogus than "containsScriptType", it must be removed ASAP

Parameters:
clazz - Execute all child tags of this type
output - The output to use when executing the tags.
Throws:
org.apache.commons.jelly.JellyTagException -  


Copyright © 2002-2004 Apache Software Foundation. All Rights Reserved.