// Copyright 2000, SLAC, Stanford, California, U.S.A.
package jas2.util.xml.parserwrappers;

import jas2.util.xml.*;
import java.io.*;
import org.w3c.dom.*;
import org.xml.sax.*;
import org.apache.xerces.parsers.*;

/**
 * An implementation of DOMParser for the Xerces XML parser
 *
 * @version $Id: XercesDOMParser.java,v 1.3 2002/04/07 17:43:52 tonyj Exp $
 * @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);
		}
	}
}

 

Ads help maintain this website.