JavaTM Platform
Standard Ed. 6

javax.xml.parsers
类 SAXParser

java.lang.Object
  继承者 javax.xml.parsers.SAXParser

public abstract class SAXParser
extends Object

定义包装 XMLReader 实现类的 API。在 JAXP 1.0 中,此类包装 Parser 接口,但是此接口由 XMLReader 取代。为了便于过渡,此类继续支持相同的名称和接口,并支持新方法。 此类的实例可以从 SAXParserFactory.newSAXParser() 方法获得。获取此类的实例之后,将可以从各种输入源解析 XML。这些输入源为 InputStream、File、URL 和 SAX InputSource。

此静态方法根据系统属性设置创建新的工厂实例,如果未定义属性,则使用平台默认值。

控制创建哪个工厂实现的系统属性名为 "javax.xml.parsers.SAXParserFactory"。此属性指定一个类,该类为此抽象类的具体子类。如果未定义属性,将使用默认的平台。

由于内容由底层解析器解析,因此将调用给定 HandlerBaseDefaultHandler 的方法。

包装底层实现的此类的实现程序可以考虑使用 ParserAdapter 类,从而使其 SAX1 实现最初在此修订类下工作。


构造方法摘要
protected SAXParser()
          将阻止实例化的受保护构造方法。
 
方法摘要
abstract  Parser getParser()
          返回由此类的实现封装的 SAX 解析器。
abstract  Object getProperty(String name)
          返回 XMLReader 的底层实现中请求的特定属性。
 Schema getSchema()
          获取对 XML 处理器使用的 Schema 的引用。
abstract  XMLReader getXMLReader()
          返回由此类的实现封装的 XMLReader
abstract  boolean isNamespaceAware()
          指示此解析器是否被配置为可识别名称空间。
abstract  boolean isValidating()
          指示此解析器是否被配置为验证 XML 文档。
 boolean isXIncludeAware()
          获取此解析器的 XInclude 处理模式。
 void parse(File f, DefaultHandler dh)
          使用指定的 DefaultHandler 将指定文件的内容解析为 XML。
 void parse(File f, HandlerBase hb)
          使用指定的 HandlerBase 将指定文件的内容解析为 XML。
 void parse(InputSource is, DefaultHandler dh)
          使用指定的 DefaultHandler 将给定 InputSource 的内容解析为 XML。
 void parse(InputSource is, HandlerBase hb)
          使用指定的 HandlerBase 将给定 InputSource 的内容解析为 XML。
 void parse(InputStream is, DefaultHandler dh)
          使用指定的 DefaultHandler 将给定的 InputStream 实例的内容解析为 XML。
 void parse(InputStream is, DefaultHandler dh, String systemId)
          使用指定的 DefaultHandler 将给定的 InputStream 实例的内容解析为 XML。
 void parse(InputStream is, HandlerBase hb)
          使用指定的 HandlerBase 将给定的 InputStream 实例的内容解析为 XML。
 void parse(InputStream is, HandlerBase hb, String systemId)
          使用指定的 HandlerBase 将给定的 InputStream 实例的内容解析为 XML。
 void parse(String uri, DefaultHandler dh)
          使用指定的 DefaultHandler 将给定统一资源标识符 (URI) 描述的内容解析为 XML。
 void parse(String uri, HandlerBase hb)
          使用指定的 HandlerBase 将给定统一资源标识符 (URI) 描述的内容解析为 XML。
 void reset()
          将此 SAXParser 重置为其原始配置。
abstract  void setProperty(String name, Object value)
          设置 XMLReader 的底层实现中的特定属性。
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

构造方法详细信息

SAXParser

protected SAXParser()

将阻止实例化的受保护构造方法。使用 SAXParserFactory.newSAXParser()

方法详细信息

reset

public void reset()

将此 SAXParser 重置为其原始配置。

SAXParser 被重置为使用 SAXParserFactory.newSAXParser() 创建它时的状态。设计 reset() 旨在允许重用现有的 SAXParser,从而节省与创建新的 SAXParser 相关的资源。

重置的 SAXParser 不能保证具有相同的 Schema Object,如 Object.equals(Object obj)。可以保证具有功能相等的 Schema

抛出:
UnsupportedOperationException - 当这些实现没有重写此方法时
从以下版本开始:
1.5

parse

public void parse(InputStream is,
                  HandlerBase hb)
           throws SAXException,
                  IOException

使用指定的 HandlerBase 将给定的 InputStream 实例的内容解析为 XML。建议使用此方法的 DefaultHandler 版本,因为 HandlerBase 类在 SAX 2.0 中已过时

参数:
is - 包含要解析内容的 InputStream。
hb - 要使用的 SAX HandlerBase。
抛出:
IllegalArgumentException - 如果给定的 InputStream 为 null。
SAXException - 如果解析产生 SAX 错误。
IOException - 如果在与 InputStream 的交互过程中发生 IO 错误。
另请参见:
DocumentHandler

parse

public void parse(InputStream is,
                  HandlerBase hb,
                  String systemId)
           throws SAXException,
                  IOException

使用指定的 HandlerBase 将给定的 InputStream 实例的内容解析为 XML。建议使用此方法的 DefaultHandler 版本,因为 HandlerBase 类在 SAX 2.0 中已过时

参数:
is - 包含要解析内容的 InputStream。
hb - 要使用的 SAX HandlerBase。
systemId - 解析相关 URI 所需的 systemId。
抛出:
IllegalArgumentException - 如果给定的 InputStreamnull
IOException - 如果在与 InputStream 的交互过程中发生任何 IO 错误。
SAXException - 如果在处理过程中发生任何 SAX 错误。
另请参见:
中的此方法。

parse

public void parse(InputStream is,
                  DefaultHandler dh)
           throws SAXException,
                  IOException
使用指定的 DefaultHandler 将给定的 InputStream 实例的内容解析为 XML。

参数:
is - 包含要解析内容的 InputStream。
dh - 要使用的 SAX DefaultHandler。
抛出:
IllegalArgumentException - 如果给定的 InputStream 为 null。
IOException - 如果发生任何 IO 错误。
SAXException - 如果在处理过程中发生任何 SAX 错误。
另请参见:
DocumentHandler

parse

public void parse(InputStream is,
                  DefaultHandler dh,
                  String systemId)
           throws SAXException,
                  IOException
使用指定的 DefaultHandler 将给定的 InputStream 实例的内容解析为 XML。

参数:
is - 包含要解析内容的 InputStream。
dh - 要使用的 SAX DefaultHandler。
systemId - 解析相关 URL 所需的 systemId。
抛出:
IllegalArgumentException - 如果给定的 InputStream 为 null。
IOException - 如果发生任何 IO 错误。
SAXException - 如果在处理过程中发生任何 SAX 错误。
另请参见:
org.xml.sax.DocumentHandler 版本。

parse

public void parse(String uri,
                  HandlerBase hb)
           throws SAXException,
                  IOException
使用指定的 HandlerBase 将给定统一资源标识符 (URI) 描述的内容解析为 XML。建议使用此方法的 DefaultHandler 版本,因为 HandlerBase 类在 SAX 2.0 中已过时

参数:
uri - 要解析的内容的位置。
hb - 要使用的 SAX HandlerBase。
抛出:
IllegalArgumentException - 如果 uri 为 null。
IOException - 如果发生任何 IO 错误。
SAXException - 如果在处理过程中发生任何 SAX 错误。
另请参见:
DocumentHandler

parse

public void parse(String uri,
                  DefaultHandler dh)
           throws SAXException,
                  IOException
使用指定的 DefaultHandler 将给定统一资源标识符 (URI) 描述的内容解析为 XML。

参数:
uri - 要解析的内容的位置。
dh - 要使用的 SAX DefaultHandler。
抛出:
IllegalArgumentException - 如果 uri 为 null。
IOException - 如果发生任何 IO 错误。
SAXException - 如果在处理过程中发生任何 SAX 错误。
另请参见:
DocumentHandler

parse

public void parse(File f,
                  HandlerBase hb)
           throws SAXException,
                  IOException
使用指定的 HandlerBase 将指定文件的内容解析为 XML。 建议使用此方法的 DefaultHandler 版本,因为 HandlerBase 类在 SAX 2.0 中已过时。

参数:
f - 包含要解析的 XML 的文件
hb - 要使用的 SAX HandlerBase。
抛出:
IllegalArgumentException - 如果 File 对象为 null。
IOException - 如果发生任何 IO 错误。
SAXException - 如果在处理过程中发生任何 SAX 错误。
另请参见:
DocumentHandler

parse

public void parse(File f,
                  DefaultHandler dh)
           throws SAXException,
                  IOException
使用指定的 DefaultHandler 将指定文件的内容解析为 XML。

参数:
f - 包含要解析的 XML 的文件
dh - 要使用的 SAX DefaultHandler。
抛出:
IllegalArgumentException - 如果 File 对象为 null。
IOException - 如果发生任何 IO 错误。
SAXException - 如果在处理过程中发生任何 SAX 错误。
另请参见:
DocumentHandler

parse

public void parse(InputSource is,
                  HandlerBase hb)
           throws SAXException,
                  IOException
使用指定的 HandlerBase 将给定 InputSource 的内容解析为 XML。建议使用此方法的 DefaultHandler 版本,因为 HandlerBase 类在 SAX 2.0 中已过时。

参数:
is - 包含要解析内容的 InputSource。
hb - 要使用的 SAX HandlerBase。
抛出:
IllegalArgumentException - 如果 InputSource 对象为 null
IOException - 如果发生任何 IO 错误。
SAXException - 如果在处理过程中发生任何 SAX 错误。
另请参见:
DocumentHandler

parse

public void parse(InputSource is,
                  DefaultHandler dh)
           throws SAXException,
                  IOException
使用指定的 DefaultHandler 将给定 InputSource 的内容解析为 XML。

参数:
is - 包含要解析内容的 InputSource。
dh - 要使用的 SAX DefaultHandler。
抛出:
IllegalArgumentException - 如果 InputSource 对象为 null
IOException - 如果发生任何 IO 错误。
SAXException - 如果在处理过程中发生任何 SAX 错误。
另请参见:
DocumentHandler

getParser

public abstract Parser getParser()
                          throws SAXException
返回由此类的实现封装的 SAX 解析器。

返回:
由此类的实现封装的 SAX 解析器。
抛出:
SAXException - 如果在处理过程中发生任何 SAX 错误。

getXMLReader

public abstract XMLReader getXMLReader()
                                throws SAXException
返回由此类的实现封装的 XMLReader

返回:
由此类的实现封装的 XMLReader。
抛出:
SAXException - 如果在处理过程中发生任何 SAX 错误。

isNamespaceAware

public abstract boolean isNamespaceAware()
指示此解析器是否被配置为可识别名称空间。

返回:
如果此解析器被配置为可识别名称空间,则返回 true;否则返回 false。

isValidating

public abstract boolean isValidating()
指示此解析器是否被配置为验证 XML 文档。

返回:
此解析器被配置为验证 XML 文档,则返回 true;否则返回 false。

setProperty

public abstract void setProperty(String name,
                                 Object value)
                          throws SAXNotRecognizedException,
                                 SAXNotSupportedException

设置 XMLReader 的底层实现中的特定属性。核心功能和属性列表可以在 https://sax.sourceforge.net/?selected=get-set 中找到。

参数:
name - 要设置的属性的名称。
value - 要设置的属性的值。
抛出:
SAXNotRecognizedException - 当底层 XMLReader 不能识别属性名称时。
SAXNotSupportedException - 当底层 XMLReader 可以识别属性名称,但不支持该属性时。
另请参见:
XMLReader.setProperty(java.lang.String, java.lang.Object)

getProperty

public abstract Object getProperty(String name)
                            throws SAXNotRecognizedException,
                                   SAXNotSupportedException

返回 XMLReader 的底层实现中请求的特定属性。

参数:
name - 要检索的属性的名称。
返回:
所请求属性的值。
抛出:
SAXNotRecognizedException - 当底层 XMLReader 不能识别属性名称时。
SAXNotSupportedException - 当底层 XMLReader 可以识别属性名称,但不支持该属性时。
另请参见:
XMLReader.getProperty(java.lang.String)

getSchema

public Schema getSchema()

获取对 XML 处理器使用的 Schema 的引用。

如果没有使用 schema,则返回 null

返回:
返回正在使用的 Schema,如果一个也没有使用,则返回 null
抛出:
UnsupportedOperationException - 当该实现没有重写此方法时
从以下版本开始:
1.5

isXIncludeAware

public boolean isXIncludeAware()

获取此解析器的 XInclude 处理模式。

返回:
当从工厂创建此解析器时,返回 SAXParserFactory.isXIncludeAware() 的返回值。
抛出:
UnsupportedOperationException - 当该实现没有重写此方法时
从以下版本开始:
1.5
另请参见:
SAXParserFactory.setXIncludeAware(boolean)

JavaTM Platform
Standard Ed. 6

提交错误或意见
有关更多的 API 参考资料和开发人员文档,请参阅 Java SE 开发人员文档。该文档包含更详细的、面向开发人员的描述,以及总体概述、术语定义、使用技巧和工作代码示例。

版权所有 2007 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策