public interface DTDHandler
This module, both source code and documentation, is in the Public Domain, and comes with NO WARRANTY. See http://www.saxproject.org for further information.
如果SAX应用程序需要关于符号和未分析实体的信息,那么应用程序将实现此接口,并使用解析器的setDTDHandler方法向SAX解析器注册一个实例。 解析器使用实例向应用程序报告符号和未解析的实体声明。
请注意,此接口仅包括XML建议要求处理器报告的那些DTD事件:符号和未解析的实体声明。
SAX解析器可以以任何顺序报告这些事件,而不管声明和未解析实体的顺序如何; 但是,所有DTD事件必须在文档处理程序的startDocument事件之后和第一个startElement事件之前报告。 (如果使用LexicalHandler
,这些事件也必须在endDTD事件之前报告。)
存储信息以供将来使用(可能在哈希表或对象树中)由应用程序决定。 如果应用程序遇到类型为“NOTATION”,“ENTITY”或“ENTITIES”的属性,则可以使用通过该界面获取的信息来查找与属性值对应的实体和/或符号。
XMLReader.setDTDHandler(org.xml.sax.DTDHandler)
void notationDecl(String name, String publicId, String systemId) throws SAXException
如有必要,由申请记录符号供以后参考; 符号可能显示为属性值和未分类的实体声明,并且有时用于处理指令目标名称。
publicId和systemId中的至少一个必须是非空值。 如果存在系统标识符,并且它是一个URL,则SAX解析器必须在将其通过此事件传递给应用程序之前将其完全解析。
不能保证在使用它的任何未解析的实体之前报告符号声明。
name
- 符号名称。
publicId
- 符号的公共标识符,如果没有给定,则为null。
systemId
- 符号的系统标识符,如果没有给定,则为null。
SAXException
- 任何SAX异常,可能包装另一个异常。
unparsedEntityDecl(java.lang.String, java.lang.String, java.lang.String, java.lang.String)
, Attributes
void unparsedEntityDecl(String name, String publicId, String systemId, String notationName) throws SAXException
请注意,符号名称对应于notationDecl
事件报告的符号。 如有需要,由申请记录实体供以后参考; 未解析的实体可能显示为属性值。
如果系统标识符是URL,解析器必须在将其传递给应用程序之前将其完全解析。
name
- 未分类实体的名称。
publicId
- 实体的公共标识符,如果没有给定,则为null。
systemId
- 实体的系统标识符。
notationName
- 关联符号的名称。
SAXException
- 任何SAX异常,可能包装另一个异常。
notationDecl(java.lang.String, java.lang.String, java.lang.String)
, Attributes