Thomas,

I'm sorry that I am having so many problems applying your patch.. It looks good, but I don't want to do it by hand as there are a lot of changes! I think the problem that I am having is that when I updated my fulcrum/xslt project I am at revision 350250, and you are at 344962. I don't know that it should cause any problems but...

From digging through it, it seems like there are a lot of whitespace differences that are causing your patch file not to match up with the latest in SVN. I saved your patch as a file attachement, does it allow you to apply it as a reverse patch and undo your changes?

At any rate, if you do an update from SVN, you should receive the merged changes, versus having to recreate your code.

Eric



On Dec 1, 2005, at 2:25 AM, Thomas Vandahl wrote:

Eric Pugh wrote:
Thomas,
Can you resend this as an attachment? Not sure what has changed, but I could not get it to apply.
I created this patch again using TortoiseSVN which proved to work with Torque quite well. I don't know what happened to the patch file, I thought I had attached it correctly in the first place.

Bye, Thomas.
Index: src/java/org/apache/fulcrum/xslt/DefaultXSLTService.java
===================================================================
--- src/java/org/apache/fulcrum/xslt/DefaultXSLTService.java (revision 344962) +++ src/java/org/apache/fulcrum/xslt/DefaultXSLTService.java (working copy)
@@ -1,6 +1,5 @@
 package org.apache.fulcrum.xslt;

-
 /*
  * Copyright 2001-2004 The Apache Software Foundation.
  *
@@ -17,14 +16,16 @@
  * limitations under the License.
  */

-
 import java.io.File;
 import java.io.Reader;
 import java.io.StringWriter;
 import java.io.Writer;
+import java.net.MalformedURLException;
+import java.net.URL;
 import java.util.Hashtable;
+import java.util.Iterator;
+import java.util.Map;

-
 import javax.xml.transform.Result;
 import javax.xml.transform.Source;
 import javax.xml.transform.Templates;
@@ -44,132 +45,131 @@
 import org.apache.avalon.framework.logger.AbstractLogEnabled;
 import org.apache.avalon.framework.service.ServiceManager;
 import org.apache.avalon.framework.service.Serviceable;
+import org.w3c.dom.Node;

 /**
* Implementation of the Turbine XSLT Service. It transforms xml with a given - * xsl file. XSL stylesheets are compiled and cached (if the service property
- * is set) to improve speeds.
+ * xsl file. XSL stylesheets are compiled and cached (if the service property is
+ * set) to improve speeds.
  *
* @author <a href="mailto:[EMAIL PROTECTED]">Leon Messerschmidt</a>
  * @author <a href="mailto:[EMAIL PROTECTED]">Sam Ruby</a>
* @author <a href="mailto:[EMAIL PROTECTED]">Eric Pugh</a>
+ * @author <a href="mailto:[EMAIL PROTECTED]">Thomas Vandahl</a>
  */
-public class DefaultXSLTService
-    extends AbstractLogEnabled
- implements XSLTService,Initializable,Configurable,Contextualizable,Serviceable
-
+public class DefaultXSLTService extends AbstractLogEnabled implements
+ XSLTService, Initializable, Configurable, Contextualizable, Serviceable
 {
     /**
      * The application root
      */
-    private String applicationRoot;
-
+    private String                    applicationRoot;
+
     /**
      * Property to control the caching of Templates.
      */
-    protected boolean caching = false;
+    protected boolean                 caching            = false;

     /**
-     * Path to style sheets used for tranforming well-formed
-     * XML documents. The path is relative to the webapp context.
+ * Path to style sheets used for tranforming well-formed XML documents. The
+     * path is relative to the webapp context.
      */
-    protected  String path;
+    protected String                  path;

     /**
-     * What the configured value was
-     */
-    private  String styleSheetPath;
-
-    /**
      * Cache of compiled Templates.
      */
-    protected Hashtable cache = new Hashtable();
+ protected Hashtable cache = new Hashtable();

-    protected final static String STYLESHEET_PATH = "path";
+    protected final static String     STYLESHEET_PATH    = "path";

-    protected final static String STYLESHEET_CACHING = "cache";
+    protected final static String     STYLESHEET_CACHING = "cache";

     /**
      * Factory for producing templates and null transformers
      */
     private static TransformerFactory tfactory;

-
-
     /**
-     * Get a valid and existing filename from a template name.
-     * The extension is removed and replaced with .xsl.  If this
-     * file does not exist the method attempts to find default.xsl.
-     * If it fails to find default.xsl it returns null.
+     * Try to create a valid url object from the style parameter.
+     *
+     * @param style
+     *            the xsl-Style
+ * @return a <code>URL</code> object or null if the style sheet could not
+     *         be found
      */
-    protected String getFileName (String templateName)
+    private URL getStyleURL(String style)
     {
-        // First we chop of the existing extension
-        int colon = templateName.lastIndexOf (".");
+        StringBuffer sb = new StringBuffer(128);
+
+        sb.append(path);
+
+        // we chop off the existing extension
+        int colon = style.lastIndexOf(".");
+
         if (colon > 0)
         {
-            templateName = templateName.substring (0,colon);
+            sb.append(style.substring(0, colon));
         }
+        else
+        {
+            sb.append(style);
+        }

-        // Now we try to find the file ...
-        File f = new File (path+templateName+".xsl");
-        if (f.exists())
+        sb.append(".xsl");
+
+        URL url = null;
+
+        try
         {
-            return path+templateName+".xsl";
+            url = new URL(sb.toString());
         }
-        else
+        catch (MalformedURLException e)
         {
-            // ... or the default file
-            f = new File (path+"default.xsl");
-            if (f.exists())
-            {
-                return path+"default.xsl";
-            }
-            else
-            {
-                return null;
-            }
+            getLogger().error("Malformed URL: " + sb, e);
         }
+
+        return url;
     }

     /**
      * Compile Templates from an input file.
      */
- protected Templates compileTemplates (String source) throws Exception
+    protected Templates compileTemplates(URL source) throws Exception
     {
-        StreamSource xslin = new StreamSource(new File(source));
+        StreamSource xslin = new StreamSource(source.openStream());
         Templates root = tfactory.newTemplates(xslin);
         return root;
     }

     /**
-     * Retrieves Templates.  If caching is switched on the
-     * first attempt is to load Templates from the cache.
-     * If caching is switched of or if the Stylesheet is not found
-     * in the cache new Templates are compiled from an input
-     * file.
+ * Retrieves Templates. If caching is switched on the first attempt is to + * load Templates from the cache. If caching is switched of or if the + * Stylesheet is not found in the cache new Templates are compiled from an
+     * input file.
      * <p>
-     * This method is synchronized on the xsl cache so that a thread
-     * does not attempt to load Templates from the cache while
-     * it is still being compiled.
+ * This method is synchronized on the xsl cache so that a thread does not + * attempt to load Templates from the cache while it is still being
+     * compiled.
      */
     protected Templates getTemplates(String xslName) throws Exception
     {
         synchronized (cache)
         {
-            String fn = getFileName (xslName);
-            if (fn == null) return null;
+            URL fn = getStyleURL(xslName);
+            if (fn == null)
+                return null;

-            if (caching && cache.containsKey (fn))
+            if (caching && cache.containsKey(fn))
             {
-                return (Templates)cache.get(fn);
+                return (Templates) cache.get(fn);
             }

-            Templates sr = compileTemplates (fn);
+            Templates sr = compileTemplates(fn);

             if (caching)
             {
-                cache.put (fn,sr);
+                cache.put(fn, sr);
             }

             return sr;
@@ -177,67 +177,183 @@

     }

- protected void transform (String xslName, Source xmlin, Result xmlout)
-        throws Exception
+ protected void transform(String xslName, Source xmlin, Result xmlout, Map params)
+            throws Exception
     {
-        Transformer transformer = getTransformer( xslName );
+        Transformer transformer = getTransformer(xslName);

+        if (params != null)
+        {
+ for (Iterator it = params.entrySet().iterator(); it.hasNext(); )
+            {
+                Map.Entry entry = (Map.Entry) it.next();
+ transformer.setParameter(String.valueOf (entry.getKey()), entry.getValue());
+            }
+        }
+
         transformer.transform(xmlin, xmlout);
     }

     /**
-     * Execute an xslt
+ * Uses an xsl file to transform xml input from a reader and writes the
+     * output to a writer.
+     *
+     * @param xslName
+ * The name of the file that contains the xsl stylesheet.
+     * @param in
+     *            The reader that passes the xml to be transformed
+     * @param out
+     *            The writer for the transformed output
      */
-    public void transform (String xslName, Reader in, Writer out)
-        throws Exception
+    public void transform(String xslName, Reader in, Writer out)
+            throws Exception
     {
         Source xmlin = new StreamSource(in);
         Result xmlout = new StreamResult(out);
-        transform (xslName,xmlin,xmlout);
+        transform(xslName, xmlin, xmlout, null);
     }

     /**
-     * Execute an xslt
+ * Uses an xsl file to transform xml input from a reader and returns a
+     * string containing the transformed output.
+     *
+     * @param xslName
+ * The name of the file that contains the xsl stylesheet.
+     * @param in
+     *            The reader that passes the xml to be transformed
      */
-    public String transform (String xslName, Reader in)
-        throws Exception
+ public String transform(String xslName, Reader in) throws Exception
     {
         StringWriter sw = new StringWriter();
-        transform (xslName,in,sw);
+        transform(xslName, in, sw, null);
         return sw.toString();
     }

+    /**
+ * Uses an xsl file to transform xml input from a DOM note and writes the
+     * output to a writer.
+     *
+     * @param xslName
+ * The name of the file that contains the xsl stylesheet.
+     * @param in
+     *            The DOM Node to be transformed
+     * @param out
+     *            The writer for the transformed output
+     */
+ public void transform(String xslName, org.w3c.dom.Node in, Writer out)
+            throws Exception
+    {
+        Source xmlin = new DOMSource(in);
+        Result xmlout = new StreamResult(out);
+        transform(xslName, xmlin, xmlout, null);
+    }

     /**
-     * Execute an xslt
+ * Uses an xsl file to transform xml input from a DOM note and returns a
+     * string containing the transformed output.
+     *
+     * @param xslName
+ * The name of the file that contains the xsl stylesheet.
+     * @param in
+     *            The DOM Node to be transformed
      */
- public void transform (String xslName, org.w3c.dom.Node in, Writer out)
-        throws Exception
+    public String transform(String xslName, org.w3c.dom.Node in)
+            throws Exception
     {
+        StringWriter sw = new StringWriter();
+        transform(xslName, in, sw);
+        return sw.toString();
+    }
+
+    /**
+ * Uses an xsl file to transform xml input from a reader and writes the
+     * output to a writer.
+     *
+     * @param xslName
+ * The name of the file that contains the xsl stylesheet.
+     * @param in
+     *            The reader that passes the xml to be transformed
+     * @param out
+     *            The writer for the transformed output
+     * @param params
+ * A set of parameters that will be forwarded to the XSLT
+     */
+ public void transform(String xslName, Reader in, Writer out, Map params)
+            throws Exception
+    {
+        Source xmlin = new StreamSource(in);
+        Result xmlout = new StreamResult(out);
+        transform(xslName, xmlin, xmlout, params);
+    }
+
+    /**
+ * Uses an xsl file to transform xml input from a reader and returns a
+     * string containing the transformed output.
+     *
+     * @param xslName
+ * The name of the file that contains the xsl stylesheet.
+     * @param in
+     *            The reader that passes the xml to be transformed
+     * @param params
+ * A set of parameters that will be forwarded to the XSLT
+     */
+    public String transform(String xslName, Reader in, Map params)
+            throws Exception
+    {
+        StringWriter sw = new StringWriter();
+        transform(xslName, in, sw, params);
+        return sw.toString();
+    }
+
+    /**
+ * Uses an xsl file to transform xml input from a DOM note and writes the
+     * output to a writer.
+     *
+     * @param xslName
+ * The name of the file that contains the xsl stylesheet.
+     * @param in
+     *            The DOM Node to be transformed
+     * @param out
+     *            The writer for the transformed output
+     * @param params
+ * A set of parameters that will be forwarded to the XSLT
+     */
+ public void transform(String xslName, Node in, Writer out, Map params)
+            throws Exception
+    {
         Source xmlin = new DOMSource(in);
         Result xmlout = new StreamResult(out);
-        transform (xslName,xmlin,xmlout);
+        transform(xslName, xmlin, xmlout, params);
     }

     /**
-     * Execute an xslt
+ * Uses an xsl file to transform xml input from a DOM note and returns a
+     * string containing the transformed output.
+     *
+     * @param xslName
+ * The name of the file that contains the xsl stylesheet.
+     * @param in
+     *            The DOM Node to be transformed
+     * @param params
+ * A set of parameters that will be forwarded to the XSLT
      */
-    public String transform (String xslName, org.w3c.dom.Node in)
-        throws Exception
+    public String transform(String xslName, Node in, Map params)
+            throws Exception
     {
         StringWriter sw = new StringWriter();
-        transform (xslName,in,sw);
+        transform(xslName, in, sw, params);
         return sw.toString();
     }

     /**
- * Retrieve a transformer for the given stylesheet name. If no stylesheet - * is available for the provided name, an identity transformer will be + * Retrieve a transformer for the given stylesheet name. If no stylesheet is + * available for the provided name, an identity transformer will be * returned. This allows clients of this service to perform more complex * transformations (for example, where parameters must be set). When
      * possible prefer using one of the forms of [EMAIL PROTECTED] #transform}.
      *
-     * @param xslName Identifies stylesheet to get transformer for
+     * @param xslName
+     *            Identifies stylesheet to get transformer for
      * @return A transformer for that stylesheet
      */
public Transformer getTransformer(String xslName) throws Exception
@@ -253,70 +369,58 @@
             return sr.newTransformer();
         }
     }
-
+
+ // ---------------- Avalon Lifecycle Methods ---------------------
     /**
-     * @see org.apache.fulcrum.ServiceBroker#getRealPath(String)
+     * Avalon component lifecycle method
+     *
+ * This method processes the repository path, to make it relative to the web + * application root, if neccessary. It supports URL-style repositories.
      */
-    public String getRealPath(String path)
+ public void configure(Configuration conf) throws ConfigurationException
     {
-        String absolutePath = null;
-        if (applicationRoot == null)
+ StringBuffer sb = new StringBuffer(conf.getAttribute (STYLESHEET_PATH,
+                "/"));
+
+        // is URL?
+        if (!sb.toString().matches("[a-zA-Z]{3,}://.*"))
         {
-            absolutePath = new File(path).getAbsolutePath();
+            // No
+            if (sb.charAt(0) != '/')
+            {
+                sb.insert(0, '/');
+            }
+            sb.insert(0, applicationRoot);
+            sb.insert(0, "file:");
         }
-        else
+
+        if (sb.charAt(sb.length() - 1) != '/')
         {
- absolutePath = new File(applicationRoot, path).getAbsolutePath();
+            sb.append('/');
         }
-
-        return absolutePath;
-    }
- // ---------------- Avalon Lifecycle Methods ---------------------
-    /**
-     * Avalon component lifecycle method
-     */
- public void configure(Configuration conf) throws ConfigurationException
-    {
-        styleSheetPath =conf.getAttribute(STYLESHEET_PATH);
-        caching = conf.getAttributeAsBoolean(STYLESHEET_CACHING);

+        path = sb.toString();
+ caching = conf.getAttributeAsBoolean(STYLESHEET_CACHING, false);
     }
-
+
     /**
      * Initializes the service.
-     *
- * This method processes the repository path, to make it relative to the
-     * web application root, if neccessary
      */
     public void initialize() throws Exception
     {
-        path = getRealPath(styleSheetPath);
-        if (!path.endsWith("/") && !path.endsWith ("\\"))
-        {
-            path=path+File.separator;
-        }
-
         tfactory = TransformerFactory.newInstance();
-    }
-
- public void contextualize(Context context) throws ContextException { - this.applicationRoot = context.get ( "urn:avalon:home" ).toString();
-    }
-
+    }
+
+ public void contextualize(Context context) throws ContextException
+    {
+ this.applicationRoot = context.get ("urn:avalon:home").toString();
+    }
+
     /**
      * Avalon component lifecycle method
      */
-    public void service( ServiceManager manager) {
-
+    public void service(ServiceManager manager)
+    {
         XSLTServiceFacade.setService(this);
-
-    }
-    /**
-     * Avalon component lifecycle method
-     */
-    public void dispose()
-    {
-
-    }
-
+    }
 }
Index: src/java/org/apache/fulcrum/xslt/XSLTService.java
===================================================================
--- src/java/org/apache/fulcrum/xslt/XSLTService.java (revision 344962)
+++ src/java/org/apache/fulcrum/xslt/XSLTService.java   (working copy)
@@ -20,6 +20,8 @@

 import java.io.Reader;
 import java.io.Writer;
+import java.util.Map;
+
 import org.w3c.dom.Node;

 /**
@@ -28,10 +30,11 @@
  *
  *
* @author <a href="mailto:[EMAIL PROTECTED]">Leon Messerschmidt</a>
+ * @author <a href="mailto:[EMAIL PROTECTED]">Thomas Vandahl</a>
  */
 public interface XSLTService
 {
-    public static final String ROLE = XSLTService.class.getName();
+    String ROLE = XSLTService.class.getName();

     /**
* Uses an xsl file to transform xml input from a reader and writes the
@@ -41,7 +44,7 @@
      * @param in The reader that passes the xml to be transformed
      * @param out The writer for the transformed output
      */
- public void transform (String xslName, Reader in, Writer out) throws Exception; + void transform (String xslName, Reader in, Writer out) throws Exception;

     /**
* Uses an xsl file to transform xml input from a reader and returns a
@@ -50,7 +53,7 @@
* @param xslName The name of the file that contains the xsl stylesheet.
      * @param in The reader that passes the xml to be transformed
      */
- public String transform (String xslName, Reader in) throws Exception;
+    String transform (String xslName, Reader in) throws Exception;

     /**
* Uses an xsl file to transform xml input from a DOM note and writes the
@@ -60,7 +63,7 @@
      * @param in The DOM Node to be transformed
      * @param out The writer for the transformed output
      */
- public void transform (String xslName, Node in, Writer out) throws Exception; + void transform (String xslName, Node in, Writer out) throws Exception;

     /**
* Uses an xsl file to transform xml input from a DOM note and returns a
@@ -69,5 +72,47 @@
* @param xslName The name of the file that contains the xsl stylesheet.
      * @param out The writer for the transformed output
      */
- public String transform (String xslName, Node in) throws Exception;
+    String transform (String xslName, Node in) throws Exception;
+
+    /**
+ * Uses an xsl file to transform xml input from a reader and writes the
+     * output to a writer.
+     *
+ * @param xslName The name of the file that contains the xsl stylesheet.
+     * @param in The reader that passes the xml to be transformed
+     * @param out The writer for the transformed output
+ * @param params A set of parameters that will be forwarded to the XSLT
+     */
+ void transform(String xslName, Reader in, Writer out, Map params) throws Exception;
+
+    /**
+ * Uses an xsl file to transform xml input from a reader and returns a
+     * string containing the transformed output.
+     *
+ * @param xslName The name of the file that contains the xsl stylesheet.
+     * @param in The reader that passes the xml to be transformed
+ * @param params A set of parameters that will be forwarded to the XSLT
+     */
+ String transform(String xslName, Reader in, Map params) throws Exception;
+
+    /**
+ * Uses an xsl file to transform xml input from a DOM note and writes the
+     * output to a writer.
+     *
+ * @param xslName The name of the file that contains the xsl stylesheet.
+     * @param in The DOM Node to be transformed
+     * @param out The writer for the transformed output
+ * @param params A set of parameters that will be forwarded to the XSLT
+     */
+ void transform(String xslName, Node in, Writer out, Map params) throws Exception;
+
+    /**
+ * Uses an xsl file to transform xml input from a DOM note and returns a
+     * string containing the transformed output.
+     *
+ * @param xslName The name of the file that contains the xsl stylesheet.
+     * @param in The DOM Node to be transformed
+ * @param params A set of parameters that will be forwarded to the XSLT
+     */
+ String transform(String xslName, Node in, Map params) throws Exception;
 }
Index: src/java/org/apache/fulcrum/xslt/XSLTServiceFacade.java
===================================================================
--- src/java/org/apache/fulcrum/xslt/XSLTServiceFacade.java (revision 344962) +++ src/java/org/apache/fulcrum/xslt/XSLTServiceFacade.java (working copy)
@@ -1,6 +1,5 @@
 package org.apache.fulcrum.xslt;

-
 /*
  * Copyright 2001-2004 The Apache Software Foundation.
  *
@@ -17,22 +16,24 @@
  * limitations under the License.
  */

-
 import java.io.Reader;
 import java.io.Writer;
+import java.util.Map;
+
 import org.w3c.dom.Node;

 /**
  * This is a static accesor class for [EMAIL PROTECTED] XSLTService}.
  *
* @author <a href="mailto:[EMAIL PROTECTED]">Leon Messerschmidt</a>
+ * @author <a href="mailto:[EMAIL PROTECTED]">Thomas Vandahl</a>
  */
 public class XSLTServiceFacade
 {
     private static XSLTService xsltService;
+
     /**
-     * Utility method for accessing the service
-     * implementation
+     * Utility method for accessing the service implementation
      *
      * @return a XSLTService implementation instance
      */
@@ -40,33 +41,121 @@
     {
         return xsltService;
     }
-
-    protected static void setService(XSLTService xsltService){
-        XSLTServiceFacade.xsltService=xsltService;
+
+    /**
+ * Static utility method to set the service instance to be used in the
+     * facade
+     *
+     * @param xsltService
+     *            the service instance
+     */
+    protected static void setService(XSLTService xsltService)
+    {
+        XSLTServiceFacade.xsltService = xsltService;
     }

- public static void transform (String xslName, Reader in, Writer out)
-        throws Exception
+    /**
+ * Uses an xsl file to transform xml input from a reader and writes the
+     * output to a writer.
+     *
+ * @param xslName The name of the file that contains the xsl stylesheet.
+     * @param in The reader that passes the xml to be transformed
+     * @param out The writer for the transformed output
+     */
+ public static void transform(String xslName, Reader in, Writer out)
+            throws Exception
     {
-        getService().transform (xslName,in,out);
+        getService().transform(xslName, in, out);
     }

-    public static String transform (String xslName, Reader in)
-        throws Exception
+    /**
+ * Uses an xsl file to transform xml input from a reader and returns a
+     * string containing the transformed output.
+     *
+ * @param xslName The name of the file that contains the xsl stylesheet.
+     * @param in The reader that passes the xml to be transformed
+     */
+ public static String transform(String xslName, Reader in) throws Exception
     {
-        return getService().transform (xslName,in);
+        return getService().transform(xslName, in);
     }

-    public void transform (String xslName, Node in, Writer out)
-        throws Exception
+    /**
+ * Uses an xsl file to transform xml input from a DOM note and writes the
+     * output to a writer.
+     *
+ * @param xslName The name of the file that contains the xsl stylesheet.
+     * @param in The DOM Node to be transformed
+     * @param out The writer for the transformed output
+     */
+ public void transform(String xslName, Node in, Writer out) throws Exception
     {
-        getService().transform (xslName,in,out);
+        getService().transform(xslName, in, out);
     }

+    /**
+ * Uses an xsl file to transform xml input from a DOM note and returns a
+     * string containing the transformed output.
+     *
+ * @param xslName The name of the file that contains the xsl stylesheet.
+     * @param in The DOM Node to be transformed
+     */
+    public String transform(String xslName, Node in) throws Exception
+    {
+        return getService().transform(xslName, in);
+    }

-    public String transform (String xslName, Node in)
-        throws Exception
+    /**
+ * Uses an xsl file to transform xml input from a reader and writes the
+     * output to a writer.
+     *
+ * @param xslName The name of the file that contains the xsl stylesheet.
+     * @param in The reader that passes the xml to be transformed
+     * @param out The writer for the transformed output
+ * @param params A set of parameters that will be forwarded to the XSLT
+     */
+ void transform(String xslName, Reader in, Writer out, Map params) throws Exception
     {
-        return getService().transform (xslName,in);
+        getService().transform(xslName, in, out, params);
     }
+
+    /**
+ * Uses an xsl file to transform xml input from a reader and returns a
+     * string containing the transformed output.
+     *
+ * @param xslName The name of the file that contains the xsl stylesheet.
+     * @param in The reader that passes the xml to be transformed
+ * @param params A set of parameters that will be forwarded to the XSLT
+     */
+ String transform(String xslName, Reader in, Map params) throws Exception
+    {
+        return getService().transform(xslName, in, params);
+    }
+
+    /**
+ * Uses an xsl file to transform xml input from a DOM note and writes the
+     * output to a writer.
+     *
+ * @param xslName The name of the file that contains the xsl stylesheet.
+     * @param in The DOM Node to be transformed
+     * @param out The writer for the transformed output
+ * @param params A set of parameters that will be forwarded to the XSLT
+     */
+ void transform(String xslName, Node in, Writer out, Map params) throws Exception
+    {
+        getService().transform(xslName, in, out, params);
+    }
+
+    /**
+ * Uses an xsl file to transform xml input from a DOM note and returns a
+     * string containing the transformed output.
+     *
+ * @param xslName The name of the file that contains the xsl stylesheet.
+     * @param in The DOM Node to be transformed
+ * @param params A set of parameters that will be forwarded to the XSLT
+     */
+ String transform(String xslName, Node in, Map params) throws Exception
+    {
+        return getService().transform(xslName, in, params);
+    }
 }

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to