JavaTM Platform
Standard Ed. 6

org.xml.sax
接口 Parser

所有已知实现类:
XMLReaderAdapter

已过时。 此接口已经被 SAX2 XMLReader 接口取代,后者包括名称空间支持。

public interface Parser

用于 SAX (XML 的简单 API) 解析器的基本接口。

此模块(包括源代码和文档)在公共域中,同时 没有担保有关更多信息,请参阅http://www.saxproject.org

这是一个 SAX1 的主要事件提供者接口;在 SAX2 中它已经被 XMLReader 所取代,后者包括名称空间支持、复杂的可配置性及可扩展性。

所有的 SAX1 解析器都必须实现这一基本接口:它允许应用程序为不同类型的事件注册处理程序并且从 URI 或字符流开始解析。

所有的 SAX1 解析器还必须实现零参数的构造方法(尽管也允许实现其他的构造方法)。

SAX1 解析器可以重新使用,但不可重入:一旦成功完成了第一次解析,应用程序就可以重新使用一个解析器对象(可能具有不同的输入源),但它不可以在解析中以递归的方式调用 parse() 方法,

从以下版本开始:
SAX 1.0
另请参见:
EntityResolver, DTDHandler, DocumentHandler, ErrorHandler, HandlerBase, InputSource

方法摘要
 void parse(InputSource source)
          已过时。 解析 XML 文档。
 void parse(String systemId)
          已过时。 从系统标识符 (URI) 解析 XML 文档。
 void setDocumentHandler(DocumentHandler handler)
          已过时。 允许应用程序注册文档事件处理程序。
 void setDTDHandler(DTDHandler handler)
          已过时。 允许应用程序注册 DTD 事件处理程序。
 void setEntityResolver(EntityResolver resolver)
          已过时。 允许应用程序注册自定义的实体解析器。
 void setErrorHandler(ErrorHandler handler)
          已过时。 允许应用程序注册错误事件处理程序。
 void setLocale(Locale locale)
          已过时。 允许应用程序请求错误和警告的环境。
 

方法详细信息

setLocale

void setLocale(Locale locale)
               throws SAXException
已过时。 
允许应用程序请求错误和警告的环境。

不需要 SAX 解析器提供对错误和警告的本地化;但是,如果它们无法支持所请求的环境,则必须抛出 SAX 异常。在解析过程中应用程序不能请求环境改变。

参数:
locale - Java Locale 对象。
抛出:
SAXException - 如果不支持请求的环境,则抛出异常(使用原来的或默认的环境)。
另请参见:
SAXException, SAXParseException

setEntityResolver

void setEntityResolver(EntityResolver resolver)
已过时。 
允许应用程序注册自定义的实体解析器。

如果应用程序不注册实体解析器,则 SAX 解析器自身将解析系统标识符并打开到实体的连接(这是在 HandlerBase 中实现的默认行为)。

应用程序还可以在解析期间注册新的或不同的实体解析器,并且 SAX 解析器必须立即开始使用新的解析器。

参数:
resolver - 用来解析实体的对象。
另请参见:
EntityResolver, HandlerBase

setDTDHandler

void setDTDHandler(DTDHandler handler)
已过时。 
允许应用程序注册 DTD 事件处理程序。

如果应用程序不注册 DTD 处理程序,则将忽略由 SAX 解析器报告的所有 DTD 事件(这是由 HandlerBase 实现的默认行为)。

应用程序还可以在解析期间注册新的或不同的处理程序,并且 SAX 解析器必须立即开始使用新的处理程序。

参数:
handler - DTD 处理程序。
另请参见:
DTDHandler, HandlerBase

setDocumentHandler

void setDocumentHandler(DocumentHandler handler)
已过时。 
允许应用程序注册文档事件处理程序。

如果应用程序不注册文档处理程序,则将忽略由 SAX 解析器报告的所有文档事件(这是由 HandlerBase 实现的默认行为)。

应用程序还可以在解析过程中注册新的或不同的处理程序,并且 SAX 解析器必须立即开始使用新的处理程序。

参数:
handler - 文档处理程序。
另请参见:
DocumentHandler, HandlerBase

setErrorHandler

void setErrorHandler(ErrorHandler handler)
已过时。 
允许应用程序注册错误事件处理程序。

如果应用程序不注册错误事件处理程序,则将忽略由 SAX 解析器报告的所有错误事件,但不包括 fatalError,它将抛出 SAXException(这是由 HandlerBase 实现的默认行为)。

应用程序还可以在解析过程中注册新的或不同的处理程序,并且 SAX 解析器必须立即开始使用新的处理程序。

参数:
handler - 错误处理程序。
另请参见:
ErrorHandler, SAXException, HandlerBase

parse

void parse(InputSource source)
           throws SAXException,
                  IOException
已过时。 
解析 XML 文档。

应用程序可以使用此方法指导 SAX 解析器开始解析来自任何有效输入源(字符流、字节流或 URI)的 XML 文档。

在解析正在进行时,应用程序可能不能调用此方法(它们必须为每个另外的 XML 文档创建新的 Parser)。一旦完成了解析,应用程序就可以重新使用可能具有另外一个输入源的同一个 Parser 对象。

参数:
source - XML 文档的顶层的输入源。
抛出:
SAXException - 任何 SAX 异常,可能包装另外的异常。
IOException - 解析器发出的 IO 异常,可能来自应用程序提供的字节流或字符流。
另请参见:
InputSource, parse(java.lang.String), setEntityResolver(org.xml.sax.EntityResolver), setDTDHandler(org.xml.sax.DTDHandler), setDocumentHandler(org.xml.sax.DocumentHandler), setErrorHandler(org.xml.sax.ErrorHandler)

parse

void parse(String systemId)
           throws SAXException,
                  IOException
已过时。 
从系统标识符 (URI) 解析 XML 文档。

此方法是从系统标识符读取文档这一常见情形的捷径。它完全等效于以下方法:

 parse(new InputSource(systemId));
 

如果系统标识符是一个 URL,则在将它传递到解析器之前必须由应用程序对它进行完整的解析。

参数:
systemId - 系统标识符 (URI)。
抛出:
SAXException - 任何 SAX 异常,可能包装另外的异常。
IOException - 解析器发出的 IO 异常,可能来自应用程序提供的字节流或字符流。
另请参见:
parse(org.xml.sax.InputSource)

JavaTM Platform
Standard Ed. 6

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

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