public class MyErrorReportingParser extends org.apache.xerces.parsers.DOMParser implements org.xml.sax.ErrorHandler {
	public MyErrorReportingParser() {
		setErrorHandler(this);
	}

	public void warning(org.xml.sax.SAXParseException ex) throws org.xml.sax.SAXException {
		System.err.println("[Warning] "+ getLocationString(ex)+": "+ ex.getMessage());
	}

	public void error(org.xml.sax.SAXParseException ex) throws org.xml.sax.SAXException {
		System.err.println("[Error] "+ getLocationString(ex)+": "+ ex.getMessage());
	}

	public void fatalError(org.xml.sax.SAXParseException ex) throws org.xml.sax.SAXException {
		System.err.println("[Fatal Error] "+ getLocationString(ex)+": "+ ex.getMessage());
		throw ex;
	}

	private String getLocationString(org.xml.sax.SAXParseException ex) {
		StringBuffer str = new StringBuffer();

		String systemId = ex.getSystemId();
		if (systemId != null) {
			int index = systemId.lastIndexOf('/');
			if (index != -1) 
				systemId = systemId.substring(index + 1);
			str.append(systemId);
		}
		str.append(':');
		str.append(ex.getLineNumber());
		str.append(':');
		str.append(ex.getColumnNumber());

		return str.toString();
	}
}