XMLReader
接口取代,后者包括名称空间支持。
public interface Parser
用于 SAX (XML 的简单 API) 解析器的基本接口。
此模块(包括源代码和文档)在公共域中,同时 没有担保。有关更多信息,请参阅 http://www.saxproject.org。
这是一个 SAX1 的主要事件提供者接口;在 SAX2 中它已经被 XMLReader
所取代,后者包括名称空间支持、复杂的可配置性及可扩展性。
所有的 SAX1 解析器都必须实现这一基本接口:它允许应用程序为不同类型的事件注册处理程序并且从 URI 或字符流开始解析。
所有的 SAX1 解析器还必须实现零参数的构造方法(尽管也允许实现其他的构造方法)。
SAX1 解析器可以重新使用,但不可重入:一旦成功完成了第一次解析,应用程序就可以重新使用一个解析器对象(可能具有不同的输入源),但它不可以在解析中以递归的方式调用 parse() 方法,
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) 已过时。 允许应用程序请求错误和警告的环境。 |
方法详细信息 |
---|
void setLocale(Locale locale) throws SAXException
不需要 SAX 解析器提供对错误和警告的本地化;但是,如果它们无法支持所请求的环境,则必须抛出 SAX 异常。在解析过程中应用程序不能请求环境改变。
locale
- Java Locale 对象。
SAXException
- 如果不支持请求的环境,则抛出异常(使用原来的或默认的环境)。
SAXException
,
SAXParseException
void setEntityResolver(EntityResolver resolver)
如果应用程序不注册实体解析器,则 SAX 解析器自身将解析系统标识符并打开到实体的连接(这是在 HandlerBase 中实现的默认行为)。
应用程序还可以在解析期间注册新的或不同的实体解析器,并且 SAX 解析器必须立即开始使用新的解析器。
resolver
- 用来解析实体的对象。
EntityResolver
,
HandlerBase
void setDTDHandler(DTDHandler handler)
如果应用程序不注册 DTD 处理程序,则将忽略由 SAX 解析器报告的所有 DTD 事件(这是由 HandlerBase 实现的默认行为)。
应用程序还可以在解析期间注册新的或不同的处理程序,并且 SAX 解析器必须立即开始使用新的处理程序。
handler
- DTD 处理程序。
DTDHandler
,
HandlerBase
void setDocumentHandler(DocumentHandler handler)
如果应用程序不注册文档处理程序,则将忽略由 SAX 解析器报告的所有文档事件(这是由 HandlerBase 实现的默认行为)。
应用程序还可以在解析过程中注册新的或不同的处理程序,并且 SAX 解析器必须立即开始使用新的处理程序。
handler
- 文档处理程序。
DocumentHandler
,
HandlerBase
void setErrorHandler(ErrorHandler handler)
如果应用程序不注册错误事件处理程序,则将忽略由 SAX 解析器报告的所有错误事件,但不包括 fatalError,它将抛出 SAXException(这是由 HandlerBase 实现的默认行为)。
应用程序还可以在解析过程中注册新的或不同的处理程序,并且 SAX 解析器必须立即开始使用新的处理程序。
handler
- 错误处理程序。
ErrorHandler
,
SAXException
,
HandlerBase
void parse(InputSource source) throws SAXException, IOException
应用程序可以使用此方法指导 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)
void parse(String systemId) throws SAXException, IOException
此方法是从系统标识符读取文档这一常见情形的捷径。它完全等效于以下方法:
parse(new InputSource(systemId));
如果系统标识符是一个 URL,则在将它传递到解析器之前必须由应用程序对它进行完整的解析。
systemId
- 系统标识符 (URI)。
SAXException
- 任何 SAX 异常,可能包装另外的异常。
IOException
- 解析器发出的 IO 异常,可能来自应用程序提供的字节流或字符流。
parse(org.xml.sax.InputSource)