- 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 方法 描述 voidcharacters(char[] ch, int start, int length)接收元素内的字符数据通知。voidendDocument()接收文件结尾的通知。voidendElement(String uri, String localName, String qName)接收元素结尾的通知。voidendPrefixMapping(String prefix)接收命名空间映射结束的通知。voiderror(SAXParseException e)接收可解析解析器错误的通知。voidfatalError(SAXParseException e)报告致命的XML解析错误。voidignorableWhitespace(char[] ch, int start, int length)在元素内容中接收到可忽略的空白的通知。voidnotationDecl(String name, String publicId, String systemId)接收符号声明的通知。voidprocessingInstruction(String target, String data)接收处理指令的通知。InputSourceresolveEntity(String publicId, String systemId)解决外部实体。voidsetDocumentLocator(Locator locator)接收文档事件的Locator对象。voidskippedEntity(String name)接收跳过实体的通知。voidstartDocument()接收文件开头的通知。voidstartElement(String uri, String localName, String qName, Attributes attributes)接收元素开始的通知。voidstartPrefixMapping(String prefix, String uri)接收命名空间映射开始的通知。voidunparsedEntityDecl(String name, String publicId, String systemId, String notationName)收到未分类实体声明的通知。voidwarning(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
-
-