Tuesday, 2 August 2011

Resolving entities found in source XML during parsing

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

import org.xml.sax.Attributes;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
import org.xml.sax.SAXParseException;
import org.xml.sax.helpers.DefaultHandler;

public class Main {
  public static void main(String[] argvthrows Exception {
    SAXParserFactory factory = SAXParserFactory.newInstance();
    factory.setValidating(true);
    SAXParser parser = factory.newSAXParser();
    SaxHandler handler = new SaxHandler();
    parser.parse("sample.xml", handler);
  }
}

class SaxHandler extends DefaultHandler {
  public InputSource resolveEntity(String publicId, String systemId) {
    if (systemId.equals("http://www.my-company.com/order-1.0.dtd")) {
      return new InputSource(getClass().getResourceAsStream("order.dtd"));
    else {
      return null;
    }
  }
  public void startElement(String uri, String localName, String qName, Attributes attrs)
      throws SAXException {
    if (qName.equals("order")) {
    }
  }
  public void error(SAXParseException exthrows SAXException {
    System.out.println("ERROR: [at " + ex.getLineNumber() "] " + ex);
  }
  public void fatalError(SAXParseException exthrows SAXException {
    System.out.println("FATAL_ERROR: [at " + ex.getLineNumber() "] " + ex);
  }
  public void warning(SAXParseException exthrows SAXException {
    System.out.println("WARNING: [at " + ex.getLineNumber() "] " + ex);
  }
}

   
    
    
  

No comments:

Post a Comment