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; - } - } }