blob: 9a75760da3e11df0a960aa86898442900102bc08 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2001, 2005 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.jst.j2ee.internal.xml;
import java.io.InputStream;
import org.eclipse.jst.j2ee.internal.WrappedRuntimeException;
import org.w3c.dom.Document;
import org.w3c.dom.DocumentType;
import org.xml.sax.EntityResolver;
import org.xml.sax.ErrorHandler;
import org.xml.sax.InputSource;
import org.xml.sax.SAXParseException;
/**
* Insert the type's description here.
* Creation date: (02/21/01 4:34:13 PM)
* @author: Administrator
*/
public class XmlDocumentReader extends GeneralXmlDocumentReader {
/**
* XmlDocumentReader constructor comment.
*/
public XmlDocumentReader(InputSource source) {
super(source);
setFlagDefaults();
}
/**
* XmlDocumentReader constructor comment.
*/
public XmlDocumentReader(InputSource source, EntityResolver resolver, ErrorHandler handler) {
super(source, resolver, handler);
setFlagDefaults();
}
/**
* Insert the method's description here.
* Creation date: (03/19/01 10:13:26 AM)
* @return org.xml.sax.EntityResolver
*/
public org.xml.sax.EntityResolver createDefaultEntityResolver() {
return J2EEXmlDtDEntityResolver.INSTANCE;
}
protected void handleException(String aMessage, Throwable anException) {
if (anException instanceof SAXParseException)
handleException(aMessage, (SAXParseException) anException);
else
super.handleException(aMessage, anException);
}
protected void handleException(String aMessage, SAXParseException parseException) {
primHandleException(J2EEXMLResourceHandler.getString(XMLParseResourceHandler.parse_exception_occured_EXC_, (new Object[] {new Integer(parseException.getLineNumber()), new Integer(parseException.getColumnNumber()) })), parseException);
//$NON-NLS-1$ = "An Exception occurred while parsing xml: {0} Line #: {1} :Column #: "
}
protected void primHandleException(String aMessage, Throwable anException) {
if (anException instanceof Exception)
throw new WrappedRuntimeException(aMessage, (Exception)anException);
super.primHandleException(aMessage, anException);
}
protected void setFlagDefaults() {
setAllowJavaEncodings(true);
setValidate(true);
}
public static DocumentType readDocumentType(InputStream in, String uri) {
InputSource source = new InputSource(in);
GeneralXmlDocumentReader aReader = new XmlDocumentReader(source);
aReader.setValidate(false);
Document aDocument = aReader.parseDocument();
if (aDocument != null)
return aDocument.getDoctype();
return null;
}
}