java.lang.Object org.xml.sax.helpers.DefaultHandler
public class DefaultHandler
SAX2 事件处理程序的默认基类。
此模块(包括源代码和文档)位于公共域中,对该模块不提供担保。有关更多信息,请参阅 http://www.saxproject.org。
此类可用作 SAX2 应用程序的有用基类:它提供四个核心 SAX2 处理程序类中的所有回调的默认实现:
应用程序编写者可以在他们仅需实现部分接口时扩展此类;当应用程序尚未提供其自己的处理程序时解析器编写者可通过实例化此类来提供默认的处理程序。
此类替换不推荐使用的 SAX1 HandlerBase
类。
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 |
构造方法详细信息 |
---|
public DefaultHandler()
方法详细信息 |
---|
public InputSource resolveEntity(String publicId, String systemId) throws IOException, SAXException
将始终返回 null,因此解析器将使用 XML 文档中提供的系统标识符。此方法实现 SAX 默认的行为:应用程序编写者可以在子类中重写它以便进行诸如目录查找或 URI 重定向之类的特定转换。
EntityResolver
中的
resolveEntity
publicId
- 公共标识符,如果没有可用的,则为 null。
systemId
- 在 XML 文档中提供的系统标识符。
IOException
- 如果在设置新的输入源时发生错误。
SAXException
- 任何 SAX 异常,可能包装另外的异常。
EntityResolver.resolveEntity(java.lang.String, java.lang.String)
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)
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)
public void setDocumentLocator(Locator locator)
默认情况下,不执行任何操作。如果应用程序编写者希望存储定位器以用于其他的文档事件,则可以在子类中重写此方法。
ContentHandler
中的
setDocumentLocator
locator
- 用于所有 SAX 文档事件的定位器。
ContentHandler.setDocumentLocator(org.xml.sax.Locator)
,
Locator
public void startDocument() throws SAXException
默认情况下,不执行任何操作。应用程序编写者可以在子类中重写此方法,以便在文档的开始采取特定的措施(如分配树的根节点或创建输出文件)。
ContentHandler
中的
startDocument
SAXException
- 任何 SAX 异常,可能包装另外的异常。
ContentHandler.startDocument()
public void endDocument() throws SAXException
默认情况下,不执行任何操作。应用程序编写者可以在子类中重写此方法,以便在文档的结束处采取特定的操作(如,结束树或关闭输出文件)。
ContentHandler
中的
endDocument
SAXException
- 任何 SAX 异常,可能包装另外的异常。
ContentHandler.endDocument()
public void startPrefixMapping(String prefix, String uri) throws SAXException
默认情况下,不执行任何操作。应用程序编写者可以在子类中重写此方法,以便在每个名称空间前缀范围的开始处采取特定的操作(如存储前缀映射)。
ContentHandler
中的
startPrefixMapping
prefix
- 正在声明的名称空间前缀。
uri
- 映射到前缀的名称空间 URI。
SAXException
- 任何 SAX 异常,可能包装另外的异常。
ContentHandler.startPrefixMapping(java.lang.String, java.lang.String)
public void endPrefixMapping(String prefix) throws SAXException
默认情况下,不执行任何操作。应用程序编写者可以在子类中重写此方法,以便在每个前缀映射的结束处采取特定的操作。
ContentHandler
中的
endPrefixMapping
prefix
- 正在声明的名称空间前缀。
SAXException
- 任何 SAX 异常,可能包装另外的异常。
ContentHandler.endPrefixMapping(java.lang.String)
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)
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)
public void characters(char[] ch, int start, int length) throws SAXException
默认情况下,不执行任何操作。应用程序编写者可以重写此方法,以便对每块字符数据采取特定的措施(如将该数据添加到节点或缓冲区,或者将该数据打印到文件)。
ContentHandler
中的
characters
ch
- 字符。
start
- 字符数组中的开始位置。
length
- 从字符数组中使用的字符数。
SAXException
- 任何 SAX 异常,可能包装另外的异常。
ContentHandler.characters(char[], int, int)
public void ignorableWhitespace(char[] ch, int start, int length) throws SAXException
默认情况下,不执行任何操作。应用程序编写者可以重写此方法,以便对每块可忽略的空白采取特定的措施(如将数据添加到节点或缓冲区,或者将数据打印到文件)。
ContentHandler
中的
ignorableWhitespace
ch
- 空白字符。
start
- 字符数组中的开始位置。
length
- 从字符数组中使用的字符数。
SAXException
- 任何 SAX 异常,可能包装另外的异常。
ContentHandler.ignorableWhitespace(char[], int, int)
public void processingInstruction(String target, String data) throws SAXException
默认情况下,不执行任何操作。应用程序编写者可以在子类中重写此方法,以便对每个处理指令采取特定的措施,如设置状态变量或调用其他的方法。
ContentHandler
中的
processingInstruction
target
- 处理指令目标。
data
- 处理指令数据,如果未提供,则为 null。
SAXException
- 任何 SAX 异常,可能包装另外的异常。
ContentHandler.processingInstruction(java.lang.String, java.lang.String)
public void skippedEntity(String name) throws SAXException
默认情况下,不执行任何操作。应用程序编写者可以在子类中重写此方法,以便对每个处理指令采取特定的措施,如设置状态变量或调用其他的方法。
ContentHandler
中的
skippedEntity
name
- 跳过的实体的名称。
SAXException
- 任何 SAX 异常,可能包装另外的异常。
ContentHandler.processingInstruction(java.lang.String, java.lang.String)
public void warning(SAXParseException e) throws SAXException
默认实现不执行任何操作。应用程序编写者可以在子类中重写此方法,以便对每个警告采取特定的措施,如在日志文件中插入消息,或者将它打印到控制台。
ErrorHandler
中的
warning
e
- 被编码为异常的警告信息。
SAXException
- 任何 SAX 异常,可能包装另外的异常。
ErrorHandler.warning(org.xml.sax.SAXParseException)
,
SAXParseException
public void error(SAXParseException e) throws SAXException
默认实现不执行任何操作。应用程序编写者可以在子类中重写此方法,以便对每个错误采取特定的措施,如在日志文件中插入消息,或者将它打印到控制台。
ErrorHandler
中的
error
e
- 被编码为异常的错误信息。
SAXException
- 任何 SAX 异常,可能包装另外的异常。
ErrorHandler.warning(org.xml.sax.SAXParseException)
,
SAXParseException
public void fatalError(SAXParseException e) throws SAXException
默认的实现抛出 SAXParseException。如果应用程序编写者需要对每个严重的错误采取特定的措施(如将所有的错误收集到一个报告中),则可以在子类中重写此方法:当调用此方法时,无论哪种情况,应用程序都必须停止所有的常规处理,这是因为文档已不再可靠,并且解析器再也不能报告解析事件。
ErrorHandler
中的
fatalError
e
- 被编码为异常的错误信息。
SAXException
- 任何 SAX 异常,可能包装另外的异常。
ErrorHandler.fatalError(org.xml.sax.SAXParseException)
,
SAXParseException