Intercepting All Accesses to External Entities During XML SAX Parsing : SAX « XML « Java Tutorial


import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;

import org.w3c.dom.Document;
import org.xml.sax.EntityResolver;
import org.xml.sax.InputSource;

public class Main {
  public static void main(String[] argv) throws Exception {
    DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
    builder.setEntityResolver(new MyResolver());
    Document doc = builder.parse(new File("infilename.xml"));
class MyResolver implements EntityResolver {
  public InputSource resolveEntity(String publicId, String systemId) {
    try {
      URI uri = new URI(systemId);
      if ("file".equals(uri.getScheme())) {
        String filename = uri.getSchemeSpecificPart();
        return new InputSource(new FileReader(filename));
    } catch (Exception e) {
    return null;

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