// Copyright 2000, SLAC, Stanford, California, U.S.A. package jas.util.xml.parserwrappers; import jas.util.xml.JASDOMParser; import java.io.IOException; import java.io.Reader; import org.w3c.dom.Document; import org.xml.sax.EntityResolver; import org.xml.sax.InputSource; import org.xml.sax.SAXException; /** * An implementation of DOMParser for the Xerces XML parser * * @version $Id: XercesDOMParser.java 11553 2007-06-05 22:06:23Z duns $ * @see org.freehep.xml.util.DOMParser */ public class XercesDOMParser extends JASDOMParser { public Document parse(Reader in, String fileName) throws JASDOMParser.JASXMLException { return parse(in,fileName,null); } public Document parse(Reader in, final String fileName, EntityResolver resolver) throws JASXMLException { try { org.apache.xerces.parsers.DOMParser parser = new org.apache.xerces.parsers.DOMParser(); parser.setFeature("http://xml.org/sax/features/validation", true); XMLErrorHandler errorHandler = new XMLErrorHandler(fileName); parser.setErrorHandler(errorHandler); if (resolver != null) parser.setEntityResolver(resolver); parser.parse(new InputSource(in)); if (errorHandler.getLevel() > 1) throw new SAXException("Error during XML file parsing"); return parser.getDocument(); } catch (SAXException x) { throw new JASDOMParser.JASXMLException("Syntax error parsing XML file",x); } catch (IOException x) { throw new JASDOMParser.JASXMLException("IO error parsing XML file",x); } } }