什么是XMLSAX错误

如题所述

第1个回答  2013-08-03
根据XML标准自身用到的术语,SAX规范对错误严重程度定义了三个级别(如下)。 错误:致命错误、描述:通常表示XML格式不正确。如果存在注册的错误处理器,解析器就会调用它;反之解析器产生一个SAXParseException。大多数情况下,解析器发现第一个致命错误后就会终止运行。 错误:错误、描述:通常表示XML格式正确但不合法有效。如果存在注册的错误处理器,解析器就会调用它;反之解析器将忽略错误。
错误:警告、描述:表示XML是正确的,但是解析器认为报告一些情况是有用的。例如可能是一个“交互操作”规则的冲突:输入是正确的XML但不是正确的SGML。如果存在注册的错误处理器,解析器就会调用它;反之解析器将忽略错误。
应用程序可以通过解析器的setErrorHandler()方法注册一个错误处理器。 错误处理器包含三个方法,fataError(),error()和warning(),分别对应三种级别的错误。 如果不想定义全部三种方法,您可以创建一个从HandlerBase继承而来的错误处理器:它包含所有三种方法的样式,但所做的操作和没有注册错误处理器相同。 在所有三种情况下,错误处理器方法的参数是一个SAXParseException对象。您可能认为当错误发生时产生并处理的是Java例外;但是实际上例外是一个正规的Java对象,可以像其他Java对象一样作为一个参数传递给方法:也可能根本不会被产生。 SAXParseException包含错误的有关信息,如它在XML源文件中何处出现。错误处理器方法最常见的操作是抽取这些信息以生成一个错误消息,错误消息可以被写到适当的目标文件:例如一个Web服务器日志文件。 错误处理器方法还可以产生异常:异常经常被当做参数由解析器提供,但不是必须这样。如果异常产生了,解析一般会被终止,并且高层的应用程序会看到由parse()方法产生的相同的异常。 这是另一个输出诊断消息的时机。是从错误处理器里生成一个致命错误消息还是让高层应用程序捕获异常.这完全由您决定。