- 所有已知的子接口:
-
TransformerHandler
- 所有已知的实现类:
-
DefaultHandler
,DefaultHandler2
,HandlerBase
,XMLFilterImpl
public interface DTDHandler
接收基本DTD相关事件的通知。
如果SAX应用程序需要关于符号和未解析实体的信息,则应用程序实现此接口,并使用解析器的setDTDHandler方法向SAX解析器注册一个实例。解析器使用该实例向应用程序报告符号和未解析实体声明。
请注意,此接口仅包括XML推荐的处理器必须报告的那些DTD事件: 符号和未解析实体声明。
SAX解析器可以以任何顺序报告这些事件,而不管符号和未解析实体的声明顺序如何; 但是,所有DTD事件必须在文档处理程序的startDocument事件之后报告,并在第一个startElement事件之前报告。(如果使用LexicalHandler,这些事件也必须在endDTD事件之前报告。)
应用程序负责存储信息以供将来使用(可能存储在哈希表或对象树中)。如果应用程序遇到类型为“NOTATION”、“ENTITY”或“ENTITIES”的属性,它可以使用通过此接口获取的信息来查找与属性值对应的实体和/或符号。
- 自从:
- 1.4, SAX 1.0
- 参见:
-
Method Summary
Modifier and TypeMethodDescriptionvoid
notationDecl
(String name, String publicId, String systemId) 接收符号声明事件的通知。void
unparsedEntityDecl
(String name, String publicId, String systemId, String notationName) 接收未解析实体声明事件的通知。
-
Method Details
-
notationDecl
接收符号声明事件的通知。如果需要,应用程序负责记录符号以供以后参考; 符号可能出现为属性值和未解析实体声明,并有时与处理指令目标名称一起使用。
publicId和systemId中至少有一个必须为非null。如果存在系统标识符,并且它是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异常,可能包装另一个异常。 - 参见:
-