Module java.xml

Class DefaultHandler

java.lang.Object
org.xml.sax.helpers.DefaultHandler
所有已实现的接口:
ContentHandler, DTDHandler, EntityResolver, ErrorHandler
直接已知的子类:
DefaultHandler2

public class DefaultHandler extends Object implements EntityResolver, DTDHandler, ContentHandler, ErrorHandler
SAX2事件处理程序的默认基类。

此类作为SAX2应用程序的便利基类可用:它为四个核心SAX2处理程序类中的所有回调提供了默认实现:

应用程序编写者可以在需要仅实现接口的一部分时扩展此类;解析器编写者可以实例化此类以在应用程序未提供自己的处理程序时提供默认处理程序。

此类替代了已弃用的SAX1 HandlerBase 类。

自从:
1.4, SAX 2.0
参见:
  • Constructor Details

    • DefaultHandler

      public DefaultHandler()
      构造一个DefaultHandler
  • Method Details

    • resolveEntity

      public InputSource resolveEntity(String publicId, String systemId) throws IOException, SAXException
      解析外部实体。

      始终返回null,以便解析器将使用XML文档中提供的系统标识符。此方法实现了SAX的默认行为:应用程序编写者可以在子类中覆盖它以执行特殊的转换,如目录查找或URI重定向。

      指定者:
      resolveEntity 在接口 EntityResolver
      参数:
      publicId - 公共标识符,如果没有可用则为null。
      systemId - XML文档中提供的系统标识符。
      返回:
      新的输入源,或null以要求默认行为。
      抛出:
      IOException - 如果设置新输入源时出现错误。
      SAXException - 任何SAX异常,可能包装另一个异常。
      参见:
    • notationDecl

      public void notationDecl(String name, String publicId, String systemId) throws SAXException
      接收符号声明通知。

      默认情况下,不执行任何操作。如果应用程序编写者希望跟踪文档中声明的符号,则可以在子类中重写此方法。

      指定者:
      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

      public void setDocumentLocator(Locator locator)
      接收文档事件的定位器对象。

      默认情况下,不执行任何操作。应用程序编写者可以在子类中重写此方法以存储定位器以在其他文档事件中使用。

      指定者:
      setDocumentLocator 在接口 ContentHandler
      参数:
      locator - 用于所有SAX文档事件的定位器。
      参见:
    • startDocument

      public void startDocument() throws SAXException
      接收文档开始的通知。

      默认情况下,不执行任何操作。应用程序编写者可以在子类中重写此方法以在文档开始时执行特定操作(例如分配树的根节点或创建输出文件)。

      指定者:
      startDocument 在接口 ContentHandler
      抛出:
      SAXException - 任何SAX异常,可能包装另一个异常。
      参见:
    • endDocument

      public void endDocument() throws SAXException
      接收文档结束的通知。

      默认情况下,不执行任何操作。应用程序编写者可以在子类中重写此方法以在文档结束时执行特定操作(例如完成树或关闭输出文件)。

      指定者:
      endDocument 在接口 ContentHandler
      抛出:
      SAXException - 任何SAX异常,可能包装另一个异常。
      参见:
    • startPrefixMapping

      public void startPrefixMapping(String prefix, String uri) throws SAXException
      接收命名空间映射开始的通知。

      默认情况下,不执行任何操作。应用程序编写者可以在子类中重写此方法以在每个命名空间前缀范围的开始时执行特定操作(例如存储前缀映射)。

      指定者:
      startPrefixMapping 在接口 ContentHandler
      参数:
      prefix - 被声明的命名空间前缀。
      uri - 与前缀关联的命名空间URI。
      抛出:
      SAXException - 任何SAX异常,可能包装另一个异常。
      参见:
    • endPrefixMapping

      public void endPrefixMapping(String prefix) throws SAXException
      接收命名空间映射结束的通知。

      默认情况下,不执行任何操作。应用程序编写者可以在子类中重写此方法以在每个前缀映射结束时执行特定操作。

      指定者:
      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

      public void endElement(String uri, String localName, String qName) throws SAXException
      接收元素结束的通知。

      默认情况下,不执行任何操作。应用程序编写者可以在子类中重写此方法以在每个元素结束时执行特定操作(例如完成树节点或将输出写入文件)。

      指定者:
      endElement 在接口 ContentHandler
      参数:
      uri - 命名空间URI,如果元素没有命名空间URI或未执行命名空间处理,则为空字符串。
      localName - 本地名称(无前缀),如果未执行命名空间处理,则为空字符串。
      qName - 限定名称(带前缀),如果不可用限定名称,则为空字符串。
      抛出:
      SAXException - 任何SAX异常,可能包装另一个异常。
      参见:
    • characters

      public void characters(char[] ch, int start, int length) throws SAXException
      接收元素内字符数据的通知。

      默认情况下,不执行任何操作。应用程序编写者可以重写此方法以针对每个字符数据块执行特定操作(例如将数据添加到节点或缓冲区中,或将其打印到文件中)。

      指定者:
      characters 在接口 ContentHandler
      参数:
      ch - 字符。
      start - 字符数组中的起始位置。
      length - 从字符数组中使用的字符数。
      抛出:
      SAXException - 任何SAX异常,可能包装另一个异常。
      参见:
    • ignorableWhitespace

      public void ignorableWhitespace(char[] ch, int start, int length) throws SAXException
      接收元素内容中可忽略的空白字符的通知。

      默认情况下,不执行任何操作。应用程序编写者可以重写此方法以针对每个可忽略的空白字符块执行特定操作(例如将数据添加到节点或缓冲区中,或将其打印到文件中)。

      指定者:
      ignorableWhitespace 在接口 ContentHandler
      参数:
      ch - 空白字符。
      start - 字符数组中的起始位置。
      length - 从字符数组中使用的字符数。
      抛出:
      SAXException - 任何SAX异常,可能包装另一个异常。
      参见:
    • processingInstruction

      public void processingInstruction(String target, String data) throws SAXException
      接收处理指令的通知。

      默认情况下,不执行任何操作。应用程序编写者可以在子类中重写此方法以针对每个处理指令执行特定操作,例如设置状态变量或调用其他方法。

      指定者:
      processingInstruction 在接口 ContentHandler
      参数:
      target - 处理指令目标。
      data - 处理指令数据,如果未提供则为null。
      抛出:
      SAXException - 任何SAX异常,可能包装另一个异常。
      参见:
    • skippedEntity

      public void skippedEntity(String name) throws SAXException
      接收跳过实体的通知。

      默认情况下,不执行任何操作。应用程序编写者可以在子类中重写此方法以针对每个处理指令执行特定操作,例如设置状态变量或调用其他方法。

      指定者:
      skippedEntity 在接口 ContentHandler
      参数:
      name - 被跳过实体的名称。
      抛出:
      SAXException - 任何SAX异常,可能包装另一个异常。
      参见:
    • warning

      public void warning(SAXParseException e) throws SAXException
      接收解析器警告的通知。

      默认实现不执行任何操作。应用程序编写者可以在子类中重写此方法以针对每个警告执行特定操作,例如将消息插入日志文件或将其打印到控制台。

      指定者:
      warning 在接口 ErrorHandler
      参数:
      e - 作为异常编码的警告信息。
      抛出:
      SAXException - 任何SAX异常,可能包装另一个异常。
      参见:
    • error

      public void error(SAXParseException e) throws SAXException
      接收可恢复的解析器错误的通知。

      默认实现不执行任何操作。应用程序编写者可以在子类中重写此方法以针对每个错误执行特定操作,例如将消息插入日志文件或将其打印到控制台。

      指定者:
      error 在接口 ErrorHandler
      参数:
      e - 作为异常编码的错误信息。
      抛出:
      SAXException - 任何SAX异常,可能包装另一个异常。
      参见:
    • fatalError

      public void fatalError(SAXParseException e) throws SAXException
      报告致命的XML解析错误。

      默认实现会抛出一个SAXParseException。如果应用程序编写者需要针对每个致命错误采取特定操作(例如将所有错误收集到单个报告中),则可以在子类中重写此方法:无论如何,在调用此方法时,应用程序必须停止所有常规处理,因为文档不再可靠,解析器可能不再报告解析事件。

      指定者:
      fatalError 在接口 ErrorHandler
      参数:
      e - 作为异常编码的错误信息。
      抛出:
      SAXException - 任何SAX异常,可能包装另一个异常。
      参见: