import javax.xml.parsers.SAXParser; import javax.xml.parsers.SAXParserFactory; import javax.xml.parsers.ParserConfigurationException; import org.xml.sax.SAXNotRecognizedException; import org.xml.sax.SAXException; import org.xml.sax.SAXNotSupportedException; import org.xml.sax.helpers.DefaultHandler; import org.xml.sax.SAXParseException; import java.io.File; import java.io.IOException; public class SchmValidateSAX extends DefaultHandler { public static void main(String[] args) { SchmValidateSAX sv = new SchmValidateSAX(); sv.parseFile(args[0]); } private void parseFile(String filename) { try { SAXParserFactory spf = SAXParserFactory.newInstance(); spf.setValidating(true); spf.setNamespaceAware(true); SAXParser parser = spf.newSAXParser(); parser.setProperty( "http://java.sun.com/xml/jaxp/properties/schemaLanguage", "http://www.w3.org/2001/XMLSchema"); parser.parse(new File(filename), this); } catch(ParserConfigurationException pce) { pce.printStackTrace(); } catch(SAXNotRecognizedException snre) { snre.printStackTrace(); } catch(SAXException se) { se.printStackTrace(); } catch(IOException ioe) { ioe.printStackTrace(); } } public void error(SAXParseException exception) throws SAXException { System.out.println("Line: "+exception.getLineNumber()+", Column: "+exception.getColumnNumber()+", Message: "+exception.getMessage()); } public void fatalError(SAXParseException exception) throws SAXException { System.out.println("Line: "+exception.getLineNumber()+", Column: "+exception.getColumnNumber()+", Message: "+exception.getMessage()); } public void warning(SAXParseException exception) throws SAXException { System.out.println("Line: "+exception.getLineNumber()+", Column: "+exception.getColumnNumber()+", Message: "+exception.getMessage()); } }