public class DefaultHandler extends Object implements EntityResolver, DTDHandler, ContentHandler, ErrorHandler
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.
该类可用作SAX2应用程序的便利基类:它为四个核心SAX2处理程序类中的所有回调提供了默认实现:
应用程序编写者可以在需要仅实现部分接口时扩展此类; 解析器作者可以实例化这个类,以便在应用程序没有提供自己的时候提供默认处理程序。
该类替代了不赞成使用的SAX1 HandlerBase
类。
EntityResolver
, DTDHandler
, ContentHandler
, ErrorHandler
Constructor and Description |
---|
DefaultHandler() |
Modifier and Type | Method and Description |
---|---|
void |
characters(char[] ch, int start, int length)
接收元素内的字符数据通知。
|
void |
endDocument()
接收文件结尾的通知。
|
void |
endElement(String uri, String localName, String qName)
接收元素结尾的通知。
|
void |
endPrefixMapping(String prefix)
接收命名空间映射结束的通知。
|
void |
error(SAXParseException e)
接收可解析解析器错误的通知。
|
void |
fatalError(SAXParseException e)
报告致命的XML解析错误。
|
void |
ignorableWhitespace(char[] ch, int start, int length)
在元素内容中接收到可忽略的空白的通知。
|
void |
notationDecl(String name, String publicId, String systemId)
接收符号声明的通知。
|
void |
processingInstruction(String target, String data)
接收处理指令的通知。
|
InputSource |
resolveEntity(String publicId, String systemId)
解决外部实体。
|
void |
setDocumentLocator(Locator locator)
接收文档事件的Locator对象。
|
void |
skippedEntity(String name)
接收跳过实体的通知。
|
void |
startDocument()
接收文件开头的通知。
|
void |
startElement(String uri, String localName, String qName, Attributes attributes)
接收元素开始的通知。
|
void |
startPrefixMapping(String prefix, String uri)
接收命名空间映射开始的通知。
|
void |
unparsedEntityDecl(String name, String publicId, String systemId, String notationName)
收到未分类实体声明的通知。
|
void |
warning(SAXParseException e)
接收解析器警告的通知。
|
public InputSource resolveEntity(String publicId, String systemId) throws IOException, SAXException
始终返回null,以便解析器将使用XML文档中提供的系统标识符。 此方法实现SAX默认行为:应用程序编写者可以在子类中覆盖它,以执行特殊翻译,如目录查找或URI重定向。
resolveEntity
在界面
EntityResolver
publicId
- 公共标识符,如果没有可用,则为null。
systemId
- XML文档中提供的系统标识符。
IOException
- 如果设置新的输入源有错误。
SAXException
- 任何SAX异常,可能包括另一个异常。
EntityResolver.resolveEntity(java.lang.String, java.lang.String)
public void notationDecl(String name, String publicId, String systemId) throws SAXException
默认情况下,什么也不做。 如果应用程序编写者希望跟踪文档中声明的符号,则可以在子类中覆盖此方法。
notationDecl
在接口
DTDHandler
name
- 符号名称。
publicId
- 符号公共标识符,如果不可用,则为null。
systemId
- 符号系统标识符。
SAXException
- 任何SAX异常,可能包装另一个异常。
DTDHandler.notationDecl(java.lang.String, java.lang.String, java.lang.String)
public void unparsedEntityDecl(String name, String publicId, String systemId, String notationName) throws SAXException
默认情况下,什么也不做。 应用程序编写者可以在子类中覆盖此方法,以跟踪在文档中声明的未解析的实体。
unparsedEntityDecl
在界面
DTDHandler
name
- 实体名称。
publicId
- 实体公共标识符,如果不可用,则为null。
systemId
- 实体系统标识符。
notationName
- 关联符号的名称。
SAXException
- 任何SAX异常,可能包含另一个异常。
DTDHandler.unparsedEntityDecl(java.lang.String, java.lang.String, java.lang.String, java.lang.String)
public void setDocumentLocator(Locator locator)
默认情况下,什么也不做。 如果应用程序编写者希望存储与其他文档事件一起使用的定位器,则可以在子类中覆盖此方法。
setDocumentLocator
在界面
ContentHandler
locator
- 所有SAX文档事件的定位器。
ContentHandler.setDocumentLocator(org.xml.sax.Locator)
, Locator
public void startDocument() throws SAXException
默认情况下,什么也不做。 应用程序编写者可以在子类中覆盖此方法,以在文档的开头执行特定操作(例如分配树的根节点或创建输出文件)。
startDocument
在界面
ContentHandler
SAXException
- 任何SAX异常,可能包装另一个异常。
ContentHandler.startDocument()
public void endDocument() throws SAXException
默认情况下,什么也不做。 应用程序编写者可以在子类中覆盖此方法,以在文档的末尾执行特定操作(例如,最终确定树或关闭输出文件)。
endDocument
在界面
ContentHandler
SAXException
- 任何SAX异常,可能包含另一个异常。
ContentHandler.endDocument()
public void startPrefixMapping(String prefix, String uri) throws SAXException
默认情况下,什么也不做。 应用程序编写者可以在子类中覆盖此方法,以便在每个命名空间前缀范围的开始处(例如存储前缀映射)执行特定操作。
startPrefixMapping
在界面
ContentHandler
prefix
- 声明的命名空间前缀。
uri
- 映射到前缀的命名空间URI。
SAXException
- 任何SAX异常,可能包装另一个异常。
ContentHandler.startPrefixMapping(java.lang.String, java.lang.String)
public void endPrefixMapping(String prefix) throws SAXException
默认情况下,什么也不做。 应用程序编写者可以在子类中覆盖此方法,以在每个前缀映射结束时采取特定的操作。
endPrefixMapping
在界面
ContentHandler
prefix
- 声明的命名空间前缀。
SAXException
- 任何SAX异常,可能包装另一个异常。
ContentHandler.endPrefixMapping(java.lang.String)
public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException
默认情况下,什么也不做。 应用程序编写者可以在子类中覆盖此方法,以在每个元素的开始处采取特定的操作(例如分配新的树节点或将输出写入文件)。
startElement
在界面
ContentHandler
uri
- 命名空间URI,如果该元素没有命名空间URI或未执行命名空间处理,则为空字符串。
localName
- 本地名称(无前缀),或空字符串,如果未执行命名空间处理。
qName
- 限定名称(带前缀),如果限定名称不可用,则为空字符串。
attributes
- 附加到元素的属性。
如果没有属性,它将是一个空的Attributes对象。
SAXException
- 任何SAX异常,可能包装另一个异常。
ContentHandler.startElement(java.lang.String, java.lang.String, java.lang.String, org.xml.sax.Attributes)
public void endElement(String uri, String localName, String qName) throws SAXException
默认情况下,什么也不做。 应用程序编写者可以在子类中覆盖此方法,以在每个元素的末尾执行特定操作(例如,完成树节点或将输出写入文件)。
endElement
在接口
ContentHandler
uri
- 名称空间URI,或空字符串,如果该元素没有命名空间URI或未命名空间处理。
localName
- 本地名称(无前缀),或空字符串,如果未执行命名空间处理。
qName
- 限定名称(带前缀),如果限定名称不可用,则为空字符串。
SAXException
- 任何SAX异常,可能包装另一个异常。
ContentHandler.endElement(java.lang.String, java.lang.String, java.lang.String)
public void characters(char[] ch, int start, int length) throws SAXException
默认情况下,什么也不做。 应用程序编写者可以覆盖此方法以对每个字符数据块采取特定操作(例如将数据添加到节点或缓冲区,或将其打印到文件中)。
characters
在接口
ContentHandler
ch
- 字符。
start
- 字符数组中的起始位置。
length
- 从字符数组中使用的字符数。
SAXException
- 任何SAX异常,可能包装另一个异常。
ContentHandler.characters(char[], int, int)
public void ignorableWhitespace(char[] ch, int start, int length) throws SAXException
默认情况下,什么也不做。 应用程序编写者可以覆盖此方法以针对每个可忽略的空白块(例如将数据添加到节点或缓冲区,或将其打印到文件)采取特定的操作。
ignorableWhitespace
在界面
ContentHandler
ch
- 空格字符。
start
- 字符数组中的起始位置。
length
- 从字符数组使用的字符数。
SAXException
- 任何SAX异常,可能包含另一个异常。
ContentHandler.ignorableWhitespace(char[], int, int)
public void processingInstruction(String target, String data) throws SAXException
默认情况下,什么也不做。 应用程序编写者可以在子类中覆盖此方法,以针对每个处理指令执行特定操作,例如设置状态变量或调用其他方法。
processingInstruction
在界面
ContentHandler
target
- 处理指令目标。
data
- 处理指令数据,如果没有提供,则为null。
SAXException
- 任何SAX异常,可能包装另一个异常。
ContentHandler.processingInstruction(java.lang.String, java.lang.String)
public void skippedEntity(String name) throws SAXException
默认情况下,什么也不做。 应用程序编写者可以在子类中覆盖此方法,以针对每个处理指令执行特定操作,例如设置状态变量或调用其他方法。
skippedEntity
在界面
ContentHandler
name
- 跳过的实体的名称。
SAXException
- 任何SAX异常,可能包含另一个异常。
ContentHandler.processingInstruction(java.lang.String, java.lang.String)
public void warning(SAXParseException e) throws SAXException
默认实现什么都不做。 应用程序编写者可以在子类中覆盖此方法,以对每个警告执行特定操作,例如将消息插入到日志文件中或将其打印到控制台。
warning
在接口
ErrorHandler
e
- 警告信息被编码为异常。
SAXException
- 任何SAX异常,可能包含另一个异常。
ErrorHandler.warning(org.xml.sax.SAXParseException)
, SAXParseException
public void error(SAXParseException e) throws SAXException
默认实现什么都不做。 应用程序编写者可以在子类中覆盖此方法,以针对每个错误采取特定操作,例如将消息插入日志文件或将其打印到控制台。
error
在界面
ErrorHandler
e
- 将错误信息编码为异常。
SAXException
- 任何SAX异常,可能包装另一个异常。
ErrorHandler.warning(org.xml.sax.SAXParseException)
, SAXParseException
public void fatalError(SAXParseException e) throws SAXException
默认实现会引发SAXParseException。 如果需要为每个致命错误(例如将所有错误收集到单个报告中)采取特定操作,则应用程序编写者可以在子类中覆盖此方法:在任何情况下,应用程序必须在调用此方法时停止所有常规处理,因为文档不再可靠,并且解析器可能不再报告解析事件。
fatalError
在界面
ErrorHandler
e
- 错误信息编码为异常。
SAXException
- 任何SAX异常,可能包装另一个异常。
ErrorHandler.fatalError(org.xml.sax.SAXParseException)
, SAXParseException