Module java.xml

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 module, both source code and documentation, is in the Public Domain, and comes with NO WARRANTY. See http://www.saxproject.org for further information.

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 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.

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