/** *Class SAXChecker *By Martin Carlsson *Internetprogrammering 4 Course */ import org.xml.sax.*; import org.xml.sax.helpers.XMLReaderFactory; import java.io.*; /** *Class SAXChecker is used for parsing XML dokuments. Med hjälp av SaxErrorHandler ges resultatet av parsningen. *@see SAXErrorHandler */ public class SAXChecker { /** /*Creates an XMLReader for parsing the XML documnet the user have chosen. *If the second argument is "true" it tries to validate the document. *@param args argument 1 in the argument array is the XML document to parse, while argument 2 can be *"false" or "true" to set validation to on or off. Default är false(i.e. off). */ static public void main(String[] args) { String filename; boolean validate = false; if(args.length < 2) { showUsage(); return; } else { filename = args[0]; if(args[1].trim().equals("true")) validate = true; } XMLReader reader = null; try { reader = XMLReaderFactory.createXMLReader(); reader.setFeature("http://xml.org/sax/features/validation", validate); } catch (SAXException e) { System.err.println(e.getMessage()); } // Sets ErrorHandler reader.setErrorHandler(new SAXErrorHandler(filename)); try { InputSource inputSource = new InputSource(filename); reader.parse(inputSource); System.out.println("\n**********************SAXChecker*************************"); if(validate) System.out.println("\nThe file \""+ filename + "\" validate ok!"); else System.out.println("\nThe file \"" + filename + "\" is wellformed"); } catch (SAXException e) { return; } catch (IOException e) { System.err.println(e); return; } } /** Shows usage information. */ private static void showUsage() { System.out.println("Two arguments are required!"); System.out.println("Usage: SAXChecker "); System.out.println("To view usage information again, type in: SAXParser "); } } // End Class SAXChecker