JavaTM Platform
Standard Ed. 6

org.xml.sax.helpers
类 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 事件处理程序的默认基类。

此模块(包括源代码和文档)位于公共域中,对该模块不提供担保有关更多信息,请参阅http://www.saxproject.org

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

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

此类替换不推荐使用的 SAX1 HandlerBase 类。

从以下版本开始:
SAX 2.0
另请参见:
EntityResolver, DTDHandler, ContentHandler, ErrorHandler

构造方法摘要
DefaultHandler()
           
 
方法摘要
 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)
          接收解析器警告的通知。
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

构造方法详细信息

DefaultHandler

public DefaultHandler()
方法详细信息

resolveEntity

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

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

指定者:
接口 EntityResolver 中的 resolveEntity
参数:
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
接收注释声明的通知。

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

指定者:
接口 DTDHandler 中的 notationDecl
参数:
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
接收未解析实体声明的通知。

默认情况下,不执行任何操作。应用程序编写者可以在子类中重写此方法,以便跟踪在文档中声明的未解析实体。

指定者:
接口 DTDHandler 中的 unparsedEntityDecl
参数:
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 对象。

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

指定者:
接口 ContentHandler 中的 setDocumentLocator
参数:
locator - 用于所有 SAX 文档事件的定位器。
另请参见:
ContentHandler.setDocumentLocator(org.xml.sax.Locator), Locator

startDocument

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

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

指定者:
接口 ContentHandler 中的 startDocument
抛出:
SAXException - 任何 SAX 异常,可能包装另外的异常。
另请参见:
ContentHandler.startDocument()

endDocument

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

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

指定者:
接口 ContentHandler 中的 endDocument
抛出:
SAXException - 任何 SAX 异常,可能包装另外的异常。
另请参见:
ContentHandler.endDocument()

startPrefixMapping

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

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

指定者:
接口 ContentHandler 中的 startPrefixMapping
参数:
prefix - 正在声明的名称空间前缀。
uri - 映射到前缀的名称空间 URI。
抛出:
SAXException - 任何 SAX 异常,可能包装另外的异常。
另请参见:
ContentHandler.startPrefixMapping(java.lang.String, java.lang.String)

endPrefixMapping

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

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

指定者:
接口 ContentHandler 中的 endPrefixMapping
参数:
prefix - 正在声明的名称空间前缀。
抛出:
SAXException - 任何 SAX 异常,可能包装另外的异常。
另请参见:
ContentHandler.endPrefixMapping(java.lang.String)

startElement

public void startElement(String uri,
                         String localName,
                         String qName,
                         Attributes attributes)
                  throws SAXException
接收元素开始的通知。

默认情况下,不执行任何操作。应用程序编写者可以在子类中重写此方法,以便在每个元素的开始处采取特定的操作(如,分配新的树节点或将输出写入文件)。

指定者:
接口 ContentHandler 中的 startElement
参数:
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
接收元素结束的通知。

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

指定者:
接口 ContentHandler 中的 endElement
参数:
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
接收元素中字符数据的通知。

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

指定者:
接口 ContentHandler 中的 characters
参数:
ch - 字符。
start - 字符数组中的开始位置。
length - 从字符数组中使用的字符数。
抛出:
SAXException - 任何 SAX 异常,可能包装另外的异常。
另请参见:
ContentHandler.characters(char[], int, int)

ignorableWhitespace

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

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

指定者:
接口 ContentHandler 中的 ignorableWhitespace
参数:
ch - 空白字符。
start - 字符数组中的开始位置。
length - 从字符数组中使用的字符数。
抛出:
SAXException - 任何 SAX 异常,可能包装另外的异常。
另请参见:
ContentHandler.ignorableWhitespace(char[], int, int)

processingInstruction

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

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

指定者:
接口 ContentHandler 中的 processingInstruction
参数:
target - 处理指令目标。
data - 处理指令数据,如果未提供,则为 null。
抛出:
SAXException - 任何 SAX 异常,可能包装另外的异常。
另请参见:
ContentHandler.processingInstruction(java.lang.String, java.lang.String)

skippedEntity

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

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

指定者:
接口 ContentHandler 中的 skippedEntity
参数:
name - 跳过的实体的名称。
抛出:
SAXException - 任何 SAX 异常,可能包装另外的异常。
另请参见:
ContentHandler.processingInstruction(java.lang.String, java.lang.String)

warning

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

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

指定者:
接口 ErrorHandler 中的 warning
参数:
e - 被编码为异常的警告信息。
抛出:
SAXException - 任何 SAX 异常,可能包装另外的异常。
另请参见:
ErrorHandler.warning(org.xml.sax.SAXParseException), SAXParseException

error

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

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

指定者:
接口 ErrorHandler 中的 error
参数:
e - 被编码为异常的错误信息。
抛出:
SAXException - 任何 SAX 异常,可能包装另外的异常。
另请参见:
ErrorHandler.warning(org.xml.sax.SAXParseException), SAXParseException

fatalError

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

默认的实现抛出 SAXParseException。如果应用程序编写者需要对每个严重的错误采取特定的措施(如将所有的错误收集到一个报告中),则可以在子类中重写此方法:当调用此方法时,无论哪种情况,应用程序都必须停止所有的常规处理,这是因为文档已不再可靠,并且解析器再也不能报告解析事件。

指定者:
接口 ErrorHandler 中的 fatalError
参数:
e - 被编码为异常的错误信息。
抛出:
SAXException - 任何 SAX 异常,可能包装另外的异常。
另请参见:
ErrorHandler.fatalError(org.xml.sax.SAXParseException), SAXParseException

JavaTM Platform
Standard Ed. 6

提交错误或意见
有关更多的 API 参考资料和开发人员文档,请参阅 Java SE 开发人员文档。该文档包含更详细的、面向开发人员的描述,以及总体概述、术语定义、使用技巧和工作代码示例。

版权所有 2007 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策