📄 xmlreaderfactory.java
字号:
// XMLReaderFactory.java - factory for creating a new reader.// Written by David Megginson, sax@megginson.com// NO WARRANTY! This class is in the Public Domain.// $Id: XMLReaderFactory.java,v 1.2 2000/05/15 16:10:53 mojo Exp $package org.xml.sax.helpers;import org.xml.sax.Parser;import org.xml.sax.XMLReader;import org.xml.sax.SAXException;/** * Factory for creating an XML reader. * * <blockquote> * <em>This module, both source code and documentation, is in the * Public Domain, and comes with <strong>NO WARRANTY</strong>.</em> * </blockquote> * * <p>This class contains static methods for creating an XML reader * from an explicit class name, or for creating an XML reader based * on the value of the <code>org.xml.sax.driver</code> system * property:</p> * * <pre> * try { * XMLReader myReader = XMLReaderFactory.createXMLReader(); * } catch (SAXException e) { * System.err.println(e.getMessage()); * } * </pre> * * <p>Note that these methods will not be usable in environments where * system properties are not accessible or where the application or * applet is not permitted to load classes dynamically.</p> * * <p>SAX implementations * may replace this class with a different one optimized for the * environment, as long as its method signatures remain the same. </p> * * @since SAX 2.0 * @author David Megginson, * <a href="mailto:sax@megginson.com">sax@megginson.com</a> * @version 2.0 * @see org.xml.sax.XMLReader */final public class XMLReaderFactory{ /** * Private constructor. * * <p>This constructor prevents the class from being instantiated.</p> */ private XMLReaderFactory () { } /** * Attempt to create an XML reader. * * <p>This implementation uses the value of the system property * "org.xml.sax.driver" as the full name of a Java class * and tries to instantiate that class as a SAX2 * XMLReader.</p> * * <p> If there is no such value, the Ælred Enhanced (&AE;2) * non-validating parser is used. </p> * * <p>Note that many Java interpreters allow system properties * to be specified on the command line.</p> * * @return A new XMLReader. * @exception org.xml.sax.SAXException If the value of the * "org.xml.sax.driver" system property is null, * or if the class cannot be loaded and instantiated. * @see #createXMLReader(java.lang.String) */ public static XMLReader createXMLReader () throws SAXException { String className = System.getProperty("org.xml.sax.driver", "org.brownell.xml.aelfred2.SAXDriver" ); if (className == null) { Parser parser; try { parser = ParserFactory.makeParser(); } catch (Exception e) { parser = null; } if (parser == null) { throw new SAXException("System property org.xml.sax.driver not specified"); } else { return new ParserAdapter(parser); } } else { return createXMLReader(className); } } /** * Attempt to create an XML reader from a class name. * * <p>Given a class name, this method attempts to load * and instantiate the class as an XML reader.</p> * * @return A new XML reader. * @exception org.xml.sax.SAXException If the class cannot be * loaded, instantiated, and cast to XMLReader. * @see #createXMLReader() */ public static XMLReader createXMLReader (String className) throws SAXException { try { return (XMLReader)(Class.forName(className).newInstance()); } catch (ClassNotFoundException e1) { throw new SAXException("SAX2 driver class " + className + " not found", e1); } catch (IllegalAccessException e2) { throw new SAXException("SAX2 driver class " + className + " found but cannot be loaded", e2); } catch (InstantiationException e3) { throw new SAXException("SAX2 driver class " + className + " loaded but cannot be instantiated (no empty public constructor?)", e3); } catch (ClassCastException e4) { throw new SAXException("SAX2 driver class " + className + " does not implement XMLReader", e4); } }}// end of XMLReaderFactory.java
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -