org.xml.sax.helpers

java.lang.Object
  继承者 org.xml.sax.helpers.XMLReaderFactory

public final class XMLReaderFactory
     
extends Object

创建 XML 阅读器的工厂。

此模块(包括源代码和文档)位于公共域中,对该模块不提供担保有关更多信息,请参阅 http://www.saxproject.org

此类包含用于从显式类名称或基于运行时默认值创建 XML 阅读器的静态方法:

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

注意,分发与解析程序绑定在一起:应该修改无参数 createXMLReader 的实现,来处理外部配置机制未设置的情况。当位于类路径时,该方法应该尽力返回解析器,甚至没有一个将其类名绑定到 org.xml.sax.driver,使这些配置机制能够看到它。

从以下版本开始:
SAX 2.0

方法摘要
static XMLReader createXMLReader()
          尝试从系统默认值创建一个 XMLReader。
static XMLReader createXMLReader(String className)
          尝试从类名称创建一个 XML 阅读器。
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

方法详细信息

createXMLReader

public static XMLReader createXMLReader()
                                 throws SAXException
尝试从系统默认值创建一个 XMLReader。在可以支持它的环境下,XMLReader 类的名称通过顺序尝试这些选项中的每一个来确定,并且使用第一个成功的:

  • 如果系统属性 org.xml.sax.driver 有一个值,该值将被用做 XMLReader 类名称。
  • JAR "Services API" 被用于在 META-INF/services/org.xml.sax.driver 文件中查找类名称,该文件在运行时可用的 jarfiles 中。
  • 强烈建议使用 SAX 解析器分发提供默认的 XMLReader 类名称,该类名称只在以前的选项(在此列表上)不成功时才生效。
  • 最后,如果 ParserFactory.makeParser() 可以返回系统默认 SAX1 解析器,该解析器将包装在 ParserAdapter 中。(这是一个用于 SAX1 环境的迁移帮助,其中 org.xml.sax.parser 系统属性经常是可用的。)

在诸如小型嵌套系统的环境中,这样的环境不能支持灵活性,使用确定默认值的其他机制。

注意,许多 Java 环境允许系统属性在命令行初始化。这意味着,在多数情况下为该属性设置一个较好的值可确保对此方法的调用能够成功,除了安全策略干扰时。具有低健壮性的此方法的实现 能够使应用程序向旧的 SAX 环境的可移值性最大化。

返回:
新的 XMLReader。
抛出:
SAXException - 如果不能识别或实例化默认 XMLReader 类。
另请参见:
createXMLReader(java.lang.String)

createXMLReader

public static XMLReader createXMLReader(String className)
                                 throws SAXException
尝试从类名称创建一个 XML 阅读器。

给定一个类名称,此方法尝试加载该类或将其实例化为 XML 阅读器。

注意,此方法在以下环境中不可用:即不允许调用者(也可能是 applet)动态加载类。

返回:
新的 XML 阅读器。
抛出:
SAXException - 如果此类不能被加载、实例化、或强制转化成 XMLReader。
另请参见:
createXMLReader()