diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/XMLValidateTask.java b/src/main/org/apache/tools/ant/taskdefs/optional/XMLValidateTask.java
index b0963a15f..8aa3039bb 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/XMLValidateTask.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/XMLValidateTask.java
@@ -58,10 +58,9 @@ import java.io.FileReader;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
+import java.util.Enumeration;
+import java.util.Hashtable;
import java.util.Vector;
-import java.util.List;
-import java.util.LinkedList;
-
import org.apache.tools.ant.AntClassLoader;
import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.DirectoryScanner;
@@ -90,8 +89,6 @@ import org.xml.sax.helpers.ParserAdapter;
* (probably the one that is used by Ant itself), but one can specify any
* SAX1/2 parser if needed
* @author Raphael Pierquin raphael.pierquin@agisphere.com
- * @author Nick Pellow
- * Added support for setting features.
*/
public class XMLValidateTask extends Task {
@@ -109,7 +106,8 @@ public class XMLValidateTask extends Task {
protected Vector filesets = new Vector(); // sets of file to be validated
protected Path classpath;
- /**
+
+ /**
* the parser is viewed as a SAX2 XMLReader. If a SAX1 parser is specified,
* it's wrapped in an adapter that make it behave as a XMLReader.
* a more 'standard' way of doing this would be to use the JAXP1.1 SAXParser
@@ -118,8 +116,7 @@ public class XMLValidateTask extends Task {
protected XMLReader xmlReader = null; // XMLReader used to validation process
protected ValidatorErrorHandler errorHandler
= new ValidatorErrorHandler(); // to report sax parsing errors
-
- private List featureList = new LinkedList();
+ protected Hashtable features = new Hashtable();
private XMLCatalog xmlCatalog = new XMLCatalog();
@@ -225,17 +222,6 @@ public class XMLValidateTask extends Task {
filesets.addElement(set);
}
-
- /**
- * add a feature nested element
- * @since ant1.6
- */
- public Feature createFeature() {
- final Feature feature = new Feature();
- featureList.add(feature);
- return feature;
- }
-
public void init() throws BuildException {
super.init();
xmlCatalog.setProject(getProject());
@@ -361,18 +347,18 @@ public class XMLValidateTask extends Task {
+ " doesn't provide validation");
}
}
- // set the feature from the feature list
- for (int i = 0; i < featureList.size(); i++) {
- Feature feature = (Feature) featureList.get(i);
- setFeature(feature.getFeatureName(),
- feature.getFeatureValue(),
- true);
+ // set other features
+ Enumeration enum = features.keys();
+ while (enum.hasMoreElements()) {
+ String featureId = (String) enum.nextElement();
+ setFeature(featureId, ((Boolean) features.get(featureId)).booleanValue(), true);
}
}
}
/**
- * Set a feature on the parser.
+ * set a feature on the parser.
+ * @todo find a way to set any feature from build.xml
*/
private boolean setFeature(String feature, boolean value, boolean warn) {
@@ -496,53 +482,4 @@ public class XMLValidateTask extends Task {
return e.getMessage();
}
}
-
- /**
- * The class to create to set a feature of the parser.
- * @since ant1.6
- * @author Nick Pellow
- */
- public class Feature {
- /** The name of the feature to set.
- *
- * Valid features include.
- */
- private String featureName = null;
-
- /**
- * The value of the feature.
- **/
- private boolean featureValue;
-
- /**
- * Set the feature name.
- * @param name the name to set
- */
- public void setName(String name) {
- featureName = name;
- }
- /**
- * Set the feature value to true or false.
- * @param value
- */
- public void setValue(boolean value) {
- featureValue = value;
- }
-
- /**
- * Gets the feature name.
- * @return the feature name
- */
- public String getFeatureName() {
- return featureName;
- }
-
- /**
- * Gets the feature value.
- * @return the featuree value
- */
- public boolean getFeatureValue() {
- return featureValue;
- }
- }
}