# Class XMLReaderFactory

java.lang.Object
org.xml.sax.helpers.XMLReaderFactory

@Deprecated(since="9") public final class XMLReaderFactory extends Object
Deprecated.
It is recommended to use `SAXParserFactory` instead.
Factory for creating an XML reader.

This class contains static methods for creating an XML reader from an explicit class name, or based on runtime defaults:

    try {
      XMLReader myReader = XMLReaderFactory.createXMLReader();
    } catch (SAXException e) {
      System.err.println(e.getMessage());
    }

Note to Distributions bundled with parsers: You should modify the implementation of the no-arguments createXMLReader to handle cases where the external configuration mechanisms aren't set up. That method should do its best to return a parser when one is in the class path, even when nothing bound its class name to `org.xml.sax.driver` so those configuration mechanisms would see it.

Since:
  1.4, SAX 2.0

- ## Method Summary

  Modifier and Type
  Method
  Description
  `static XMLReader`
  `createXMLReader()`
  Deprecated.
  Obtains a new instance of a `XMLReader`.
  `static XMLReader`
  `createXMLReader(String className)`
  Deprecated.
  Attempt to create an XML reader from a class name.

  ### Methods declared in class Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`
  Modifier and Type
  Method
  Description
  `protected Object`
  `clone()`
  Creates and returns a copy of this object.
  `boolean`
  `equals(Object obj)`
  Indicates whether some other object is "equal to" this one.
  `protected void`
  `finalize()`
  Deprecated, for removal: This API element is subject to removal in a future version.
  Finalization is deprecated and subject to removal in a future release.
  `final Class<?>`
  `getClass()`
  Returns the runtime class of this `Object`.
  `int`
  `hashCode()`
  Returns a hash code value for this object.
  `final void`
  `notify()`
  Wakes up a single thread that is waiting on this object's monitor.
  `final void`
  `notifyAll()`
  Wakes up all threads that are waiting on this object's monitor.
  `String`
  `toString()`
  Returns a string representation of the object.
  `final void`
  `wait()`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted.
  `final void`
  `wait(long timeoutMillis)`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.
  `final void`
  `wait(long timeoutMillis, int nanos)`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.

- ## Method Details

  - ### createXMLReader

    public static XMLReader createXMLReader() throws SAXException
    Deprecated.
    Obtains a new instance of a `XMLReader`. This method uses the following ordered lookup procedure to find and load the `XMLReader` implementation class:
    1. If the system property `org.xml.sax.driver` has a value, that is used as an XMLReader class name.
    2. Use the service-provider loading facility, defined by the `ServiceLoader` class, to attempt to locate and load an implementation of the service `XMLReader` by using the current thread's context class loader. If the context class loader is null, the system class loader will be used.
    3. Deprecated. Look for a class name in the `META-INF/services/org.xml.sax.driver` file in a jar file available to the runtime.

    4. Otherwise, the system-default implementation is returned.

    API Note:
      The process that looks for a class name in the `META-INF/services/org.xml.sax.driver` file in a jar file does not conform to the specification of the service-provider loading facility as defined in `ServiceLoader` and therefore does not support modularization. It is deprecated as of Java SE 9 and subject to removal in a future release.
    Returns:
      a new XMLReader.
    Throws:
      `SAXException` - If no default XMLReader class can be identified and instantiated.
    See Also:
      - `createXMLReader(java.lang.String)`

  - ### createXMLReader

    public static XMLReader createXMLReader(String className) throws SAXException
    Deprecated.
    Attempt to create an XML reader from a class name.

    Given a class name, this method attempts to load and instantiate the class as an XML reader.

    Note that this method will not be usable in environments where the caller (perhaps an applet) is not permitted to load classes dynamically.

    Parameters:
      `className` - a class name
    Returns:
      A new XML reader.
    Throws:
      `SAXException` - If the class cannot be loaded, instantiated, and cast to XMLReader.
    See Also:
      - `createXMLReader()`