/******************************************************************************* * 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 */ @Override public org.xml.sax.EntityResolver createDefaultEntityResolver() { return J2EEXmlDtDEntityResolver.INSTANCE; } @Override 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 #: " } @Override 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; } }