@@ -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 <a href="mailto:raphael.pierquin@agisphere.com">raphael.pierquin@agisphere.com</a>
* @author <a href="mailto:nick.pellow@mindmatics.de">Nick Pellow</a>
* 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 <a href="mailto:nick.pellow@mindmatics.de">Nick Pellow</a>
*/
public class Feature {
/** The name of the feature to set.
*
* Valid features <a href=http://www.saxproject.org/apidoc/org/xml/sax/package-summary.html#package_description">include.</a>
*/
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;
}
}
}