Validates the XML document against the specified XSD document.

XSD document are “XML Schema” that describe the structure of a XML document. The validator identify given XML file must be parsable using a DOM/SAX parser, and only then it will validate your XML against the XML Schema. The validator reports all error.

Here is example :-

//This method will Return all error in document
List findProblems(File xml, File xsd) {
SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI)
.newSchema(new StreamSource(xsd))
.newValidator().with { validator ->
List exceptions = []
Closure<Void> handler = { exception -> exceptions << exception }
errorHandler = [warning: handler, fatalError: handler, error: handler] as ErrorHandler
validate(new StreamSource(xml))
exceptions
}
}

We can use this method like this .

def xyzXMLParser() {

File xml = new File(this.class.classLoader.getResource('data/xyz.xml').path)
File xsd = new File(this.class.classLoader.getResource('data/testing.xsd').path)
findProblems(xml, xsd).each {
println "Problem @ line $it.lineNumber, col $it.columnNumber : $it.message"
}
}