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