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:
  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: 155420 $
Author:
  Robert Leftwich

### Field Summary

### Fields inherited from class org.apache.commons.jelly.TagSupport

`body, context, parent`

### Constructor Summary

Constructors
Constructor and Description
`TransformTag()` Constructor for TransformTag.

### Method Summary

Methods
`protected javax.xml.transform.Result` `createSAXResult(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(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` `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(XMLOutput output)
               throws MissingAttributeException,
                      JellyTagException

Process this tag instance

Specified by:
  `doTag` in interface `Tag`
Overrides:
  `doTag` in class `ParseTag`
Parameters:
  `output` - The pipeline for xml events
Throws:
  `java.lang.Exception` - - when required attributes are missing
  `MissingAttributeException`
  `JellyTagException`

#### 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(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