diff --git a/docs/manual/CoreTasks/style.html b/docs/manual/CoreTasks/style.html
index b95d0ac5f..5eb2dc21d 100644
--- a/docs/manual/CoreTasks/style.html
+++ b/docs/manual/CoreTasks/style.html
@@ -140,6 +140,13 @@ inclusion/exclusion of files works, and how to write patterns.
in attribute.
No |
+
+ outputtype |
+ specifies the output method to be used. Only "xml" is
+ guaranteed to be supported by all translators. Xalan2 supports "xml",
+ "html", and "text" |
+ No |
+
Parameters specified as nested elements
classpath
diff --git a/src/main/org/apache/tools/ant/taskdefs/XSLTLiaison.java b/src/main/org/apache/tools/ant/taskdefs/XSLTLiaison.java
index da364af93..e6474541a 100644
--- a/src/main/org/apache/tools/ant/taskdefs/XSLTLiaison.java
+++ b/src/main/org/apache/tools/ant/taskdefs/XSLTLiaison.java
@@ -92,6 +92,14 @@ public interface XSLTLiaison {
*/
void addParam(String name, String expression) throws Exception;
+ /**
+ * set the output type to use for the transformation. Only "xml" (the
+ * default) is guaranteed to work for all parsers. Xalan2 also
+ * supports "html" and "text".
+ * @param type the output method to use
+ */
+ void setOutputtype(String type) throws Exception;
+
/**
* Perform the transformation of a file into another.
* @param infile the input file, probably an XML one. :-)
diff --git a/src/main/org/apache/tools/ant/taskdefs/XSLTProcess.java b/src/main/org/apache/tools/ant/taskdefs/XSLTProcess.java
index 4eaf087d7..09c4fb007 100644
--- a/src/main/org/apache/tools/ant/taskdefs/XSLTProcess.java
+++ b/src/main/org/apache/tools/ant/taskdefs/XSLTProcess.java
@@ -116,6 +116,8 @@ public class XSLTProcess extends MatchingTask {
private FileUtils fileUtils;
+ private String outputtype = null;
+
/**
* Creates a new XSLTProcess Task.
**/
@@ -457,6 +459,16 @@ public class XSLTProcess extends MatchingTask {
}
}
+ /**
+ * Set the output type to use for the transformation. Only "xml" (the
+ * default) is guaranteed to work for all parsers. Xalan2 also
+ * supports "html" and "text".
+ * @param type the output method to use
+ */
+ public void setOutputtype(String type) {
+ this.outputtype = type;
+ }
+
/**
* Loads the stylesheet and set xsl:param parameters.
*/
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/AdaptxLiaison.java b/src/main/org/apache/tools/ant/taskdefs/optional/AdaptxLiaison.java
index 6132519b7..55dd3fa62 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/AdaptxLiaison.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/AdaptxLiaison.java
@@ -59,6 +59,7 @@ import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
import org.apache.tools.ant.taskdefs.XSLTLiaison;
+import org.apache.tools.ant.BuildException;
import org.exolab.adaptx.xslt.XSLTProcessor;
import org.exolab.adaptx.xslt.XSLTReader;
@@ -93,4 +94,9 @@ public class AdaptxLiaison implements XSLTLiaison {
processor.setProperty(name, expression);
}
+ public void setOutputtype(String type) throws Exception {
+ if (!type.equals("xml"))
+ throw new BuildException("Unsupported output type: " + type);
+ }
+
} //-- AdaptxLiaison
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/TraXLiaison.java b/src/main/org/apache/tools/ant/taskdefs/optional/TraXLiaison.java
index a2e157c31..7dcd55cbd 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/TraXLiaison.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/TraXLiaison.java
@@ -67,6 +67,7 @@ import javax.xml.transform.Templates;
import javax.xml.transform.stream.StreamResult;
import javax.xml.transform.stream.StreamSource;
+import javax.xml.transform.OutputKeys;
/**
* Concrete liaison for XSLT processor implementing TraX. (ie JAXP 1.1)
@@ -160,4 +161,8 @@ public class TraXLiaison implements XSLTLiaison {
public void addParam(String name, String value){
transformer.setParameter(name, value);
}
+
+ public void setOutputtype(String type) throws Exception {
+ transformer.setOutputProperty(OutputKeys.METHOD, type);
+ }
} //-- TraXLiaison
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/XalanLiaison.java b/src/main/org/apache/tools/ant/taskdefs/optional/XalanLiaison.java
index c46f72491..97a219fe5 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/XalanLiaison.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/XalanLiaison.java
@@ -54,6 +54,7 @@
package org.apache.tools.ant.taskdefs.optional;
+import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.taskdefs.XSLTLiaison;
import org.apache.xalan.xslt.XSLTProcessorFactory;
@@ -127,4 +128,9 @@ public class XalanLiaison implements XSLTLiaison {
public void addParam(String name, String value){
processor.setStylesheetParam(name, value);
}
+
+ public void setOutputtype(String type) throws Exception {
+ if (!type.equals("xml"))
+ throw new BuildException("Unsupported output type: " + type);
+ }
} //-- XalanLiaison
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/XslpLiaison.java b/src/main/org/apache/tools/ant/taskdefs/optional/XslpLiaison.java
index 232f5ea57..4a6c2b717 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/XslpLiaison.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/XslpLiaison.java
@@ -58,6 +58,7 @@ import com.kvisco.xsl.XSLProcessor;
import com.kvisco.xsl.XSLReader;
import com.kvisco.xsl.XSLStylesheet;
import org.apache.tools.ant.taskdefs.XSLTLiaison;
+import org.apache.tools.ant.BuildException;
import java.io.File;
import java.io.FileOutputStream;
@@ -103,4 +104,9 @@ public class XslpLiaison implements XSLTLiaison {
processor.setProperty(name, expression);
}
+ public void setOutputtype(String type) throws Exception {
+ if (!type.equals("xml"))
+ throw new BuildException("Unsupported output type: " + type);
+ }
+
} //-- XSLPLiaison