In this tutorial, i will give you an example how to validate xml file based on xsd in JAVA. Below code will validate and give you message for all error inside xml.
import java.io.File; import javax.xml.stream.XMLInputFactory; import javax.xml.stream.XMLStreamReader; import javax.xml.transform.stax.StAXSource; import javax.xml.transform.stream.StreamSource; import javax.xml.validation.Schema; import javax.xml.validation.SchemaFactory; import javax.xml.validation.Validator; import org.xml.sax.ErrorHandler; public class Application { public static void main(String args[]) { String xsdFile = "YOUR XSD FILE PATH"; String xmlInput = "YOUR XML FILE PATH"; SchemaFactory factory = SchemaFactory.newInstance("http://www.w3.org/2001/XMLSchema"); File xsdURL = new File(xsdFile); Schema schema = null; ErrorHandler lenient = new XMLErrorHandler(); try { if (xsdURL != null) { System.out.println("not null"); schema = factory.newSchema(xsdURL); Validator validator = schema.newValidator(); XMLStreamReader reader = null; reader = XMLInputFactory.newFactory().createXMLStreamReader(new StreamSource(xmlInput)); StAXSource stsx = new StAXSource(reader); validator.setErrorHandler(lenient); validator.validate(stsx); } } catch (Exception e) { e.printStackTrace(); } } } |
import org.xml.sax.ErrorHandler; import org.xml.sax.SAXException; import org.xml.sax.SAXParseException; public class XMLErrorHandler implements ErrorHandler { public void warning(SAXParseException ex) { System.err.println(ex.getMessage()); } public void error(SAXParseException ex) { System.err.println(ex.getMessage()); } public void fatalError(SAXParseException ex) throws SAXException { throw ex; } } |
CMIIW
Leave a Reply