SAX Error Checking: A Simple Implementation of the ErrorHandler Interface : SAX « XML « Java Tutorial






import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;

import org.xml.sax.ErrorHandler;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
import org.xml.sax.SAXParseException;
import org.xml.sax.XMLReader;

class MyErrorHandler implements ErrorHandler {
  public void warning(SAXParseException e) throws SAXException {
    show("Warning", e);
    throw (e);
  }

  public void error(SAXParseException e) throws SAXException {
    show("Error", e);
    throw (e);
  }

  public void fatalError(SAXParseException e) throws SAXException {
    show("Fatal Error", e);
    throw (e);
  }

  private void show(String type, SAXParseException e) {
    System.out.println(type + ": " + e.getMessage());
    System.out.println("Line " + e.getLineNumber() + " Column " + e.getColumnNumber());
    System.out.println("System ID: " + e.getSystemId());
  }
}

// Installation and Use of an Error Handler in a SAX Parser

public class SAXCheck {
  static public void main(String[] arg) throws Exception {
    boolean validate = false;
    validate = true;

    SAXParserFactory spf = SAXParserFactory.newInstance();
    spf.setValidating(validate);

    XMLReader reader = null;
    SAXParser parser = spf.newSAXParser();
    reader = parser.getXMLReader();

    reader.setErrorHandler(new MyErrorHandler());
    InputSource is = new InputSource("test.xml");
    reader.parse(is);
  }
}
Error: Document root element "roots", must match DOCTYPE root "null".
Line 1 Column 8
System ID: file:///C:/Java_Dev/eclipse31/Eclipse/test.xml
//File: test.xml
<roots>
  <a>
    <b>text</b>
  </a>
</roots>








33.1.SAX
33.1.1.SAX parer with all its action displayed
33.1.2.SAX Error Checking: A Simple Implementation of the ErrorHandler Interface
33.1.3.The XMLReader interface
33.1.4.A Program to Display the Input from a SAX Parser: subclass ContentHandler
33.1.5.A Class to Convert SAX Parse Information into an XML Document
33.1.6.A Content Handler to Output a Sorted List
33.1.7.Generating SAX Parsing Events by Traversing a DOM Document
33.1.8.Intercepting All Accesses to External Entities During XML SAX Parsing
33.1.9.Accessing features of the SAX parser implementation
33.1.10.Handling SAX errors during parsing
33.1.11.Parsing XML with a simple SAX document handler
33.1.12.Configuring SAX parser factory to produce alternate parser
33.1.13.Using XML locator to indicate current parser position
33.1.14.Calling a .NET Web Service
33.1.15.Sax to DOM converter
33.1.16.Produce a SAX stream from a DOM Document