JAVA XML Validator

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

Your email address will not be published. Required fields are marked *

Afiseaza emoticoanele Locco.Ro