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