You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ant.apache.org by st...@apache.org on 2005/05/10 18:26:34 UTC
cvs commit: ant/src/testcases/org/apache/tools/ant/taskdefs/optional SchemaValidateTest.java
stevel 2005/05/10 09:26:34
Modified: src/etc/testcases/taskdefs/optional schemavalidate.xml
src/main/org/apache/tools/ant/taskdefs/optional
XMLValidateTask.java
src/testcases/org/apache/tools/ant/taskdefs/optional
SchemaValidateTest.java
Log:
Patch XMLValidate to create a new parser every time, plus test case that verifies it works.
Note that there is an extra change, the return code of doVerify() is now boolean and not void. I have plans for an option to halt the build only if a schema is valid (I'm using ant/gump) to validate XSD files, and want to test that a schema correctly rejects invalid files. This is just a step on the way, while I was in the method.
Revision Changes Path
1.4 +9 -0 ant/src/etc/testcases/taskdefs/optional/schemavalidate.xml
Index: schemavalidate.xml
===================================================================
RCS file: /home/cvs/ant/src/etc/testcases/taskdefs/optional/schemavalidate.xml,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- schemavalidate.xml 22 Feb 2005 17:45:40 -0000 1.3
+++ schemavalidate.xml 10 May 2005 16:26:34 -0000 1.4
@@ -69,6 +69,15 @@
</schemavalidate>
</target>
+ <target name="testFileset">
+ <schemavalidate noNamespaceFile="${doc.xsd}"
+ >
+ <schema namespace="${namespace}" file="${doc-in-ns.xsd}" />
+ <fileset dir="xml"
+ includes="endpiece.xml, endpiece-ns-no-location.xml, endpiece-no-schema.xml" />
+ </schemavalidate>
+ </target>
+
<target name="default" depends="testNoNamespace,testNSMapping" />
</project>
\ No newline at end of file
1.49 +8 -2 ant/src/main/org/apache/tools/ant/taskdefs/optional/XMLValidateTask.java
Index: XMLValidateTask.java
===================================================================
RCS file: /home/cvs/ant/src/main/org/apache/tools/ant/taskdefs/optional/XMLValidateTask.java,v
retrieving revision 1.48
retrieving revision 1.49
diff -u -r1.48 -r1.49
--- XMLValidateTask.java 23 Feb 2005 13:04:16 -0000 1.48
+++ XMLValidateTask.java 10 May 2005 16:26:34 -0000 1.49
@@ -285,7 +285,7 @@
"Specify at least one source - " + "a file or a fileset.");
}
- initValidator();
+
if (file != null) {
if (file.exists() && file.canRead() && file.isFile()) {
@@ -518,7 +518,10 @@
/**
* parse the file
*/
- protected void doValidate(File afile) {
+ protected boolean doValidate(File afile) {
+ //for every file, we have a new instance of the validator
+ initValidator();
+
try {
log("Validating " + afile.getName() + "... ", Project.MSG_VERBOSE);
errorHandler.init(afile);
@@ -526,6 +529,7 @@
String uri = FILE_UTILS.toURI(afile.getAbsolutePath());
is.setSystemId(uri);
xmlReader.parse(is);
+ return true;
} catch (SAXException ex) {
log("Caught when validating: " + ex.toString(), Project.MSG_DEBUG);
if (failOnError) {
@@ -548,6 +552,8 @@
log(afile + " is not a valid XML document", Project.MSG_ERR);
}
}
+ //if we got here. it was as a result of a caught and logged exception.
+ return false;
}
/**
1.4 +3 -0 ant/src/testcases/org/apache/tools/ant/taskdefs/optional/SchemaValidateTest.java
Index: SchemaValidateTest.java
===================================================================
RCS file: /home/cvs/ant/src/testcases/org/apache/tools/ant/taskdefs/optional/SchemaValidateTest.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- SchemaValidateTest.java 22 Feb 2005 17:45:40 -0000 1.3
+++ SchemaValidateTest.java 10 May 2005 16:26:34 -0000 1.4
@@ -92,4 +92,7 @@
executeTarget("testEqualsSchemasOK");
}
+ public void testFileset() throws Exception {
+ executeTarget("testFileset");
+ }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@ant.apache.org
For additional commands, e-mail: dev-help@ant.apache.org