- 所有已知的子接口:
TransformerHandler
- 所有已知的实现类:
DefaultHandler,DefaultHandler2,HandlerBase,XMLFilterImpl
public interface DTDHandler
接收基本 DTD 相关事件的通知。
如果 SAX 应用程序需要有关符号和未解析实体的信息,那么该应用程序会实现此接口并使用解析器的 setDTDHandler 方法向 SAX 解析器注册一个实例。解析器使用该实例向应用程序报告符号和未解析的实体声明。
请注意,此接口仅包括 XML 建议 requires 处理器报告的那些 DTD 事件:符号和未解析的实体声明。
SAX 解析器可以以任何顺序报告这些事件,而不管声明符号和未解析实体的顺序如何;但是,所有 DTD 事件都必须在文档处理程序的 startDocument 事件之后和第一个 startElement 事件之前报告。 (如果使用 LexicalHandler ,这些事件也必须在 endDTD 事件之前报告。)
存储信息以供将来使用(可能在哈希表或对象树中)取决于应用程序。如果应用程序遇到“NOTATION”、“ENTITY”或“ENTITIES”类型的属性,它可以使用通过该接口获得的信息来查找与属性值对应的实体和/或符号。
- 自从:
- 1.4, SAX 1.0
- 参见:
-
方法总结
修饰符和类型方法描述voidnotationDecl(String name, String publicId, String systemId) 接收符号声明事件的通知。voidunparsedEntityDecl(String name, String publicId, String systemId, String notationName) 接收未解析实体声明事件的通知。
-
方法详情
-
notationDecl
接收符号声明事件的通知。如有必要,由应用程序记录符号以供日后参考;符号可能作为属性值出现在未解析的实体声明中,有时与处理指令目标名称一起使用。
publicId 和 systemId 中至少有一个必须是非空的。如果存在系统标识符,并且它是一个 URL,SAX 解析器必须在通过此事件将其传递给应用程序之前完全解析它。
不能保证符号声明将在使用它的任何未解析实体之前报告。
- 参数:
name- 符号名称。publicId- 表示法的公共标识符,如果没有给出则为 null。systemId- 表示法的系统标识符,如果没有给出则为 null。- 抛出:
SAXException- 任何 SAX 异常,可能包装另一个异常。- 参见:
-
unparsedEntityDecl
void unparsedEntityDecl(String name, String publicId, String systemId, String notationName) throws SAXException 接收未解析实体声明事件的通知。请注意,符号名称对应于
notationDecl事件报告的符号。如有必要,由应用程序记录该实体以供以后参考;未解析的实体可能显示为属性值。如果系统标识符是一个 URL,解析器必须在将它传递给应用程序之前完全解析它。
- 参数:
name- 未解析实体的名称。publicId- 实体的公共标识符,如果没有给出则为 null。systemId- 实体的系统标识符。notationName- 相关符号的名称。- 抛出:
SAXException- 任何 SAX 异常,可能包装另一个异常。- 参见:
-