public interface DTDHandler
接收基本的 DTD 相关的事件的通知。
此模块(包括源代码和文档)在公共域中,同时 没有担保。有关更多信息,请参阅 http://www.saxproject.org。
如果 SAX 应用程序需要关于注释和未解析的实体的信息,则该应用程序实现此接口并使用 SAX 解析器的 setDTDHandler 方法向该解析器注册一个实例。解析器使用该实例向应用程序报告注释和未解析的实体声明。
注意,此接口仅包括 XML 推荐标准需要 处理器报告的 DTD 事件:注释和未解析的实体声明。
SAX 解析器可按任何顺序报告这些事件,而不管声明注释和未解析的实体时所采用的顺序;但是,必须在文档处理程序的 startDocument 事件之后,在第一个 startElement 事件之前报告所有的 DTD 事件。(如果使用 LexicalHandler
,则这些事件也必须在 endDTD 事件之前报告。)
需要依靠应用程序来存储信息以备将来之用(可能用哈希表或对象树)。如果应用程序遇到了 "NOTATION"、"ENTITY" 或 "ENTITIES" 类型的属性,则可以使用它通过此接口获取的信息来查找与该属性值对应的实体和/ 或注释。
XMLReader.setDTDHandler(org.xml.sax.DTDHandler)
方法摘要 | |
---|---|
void |
notationDecl(String name, String publicId, String systemId) 接收注释声明事件的通知。 |
void |
unparsedEntityDecl(String name, String publicId, String systemId, String notationName) 接收未解析的实体声明事件的通知。 |
方法详细信息 |
---|
void notationDecl(String name, String publicId, String systemId) throws SAXException
必要时需要应用程序来记录注释以便供以后参考;注释可以作为属性值和在未解析实体声明中出现,并且有时和处理指令目标名称一起使用。
至少 publicId 和 systemId 中的一个必须为非 null。如果有系统标识符,并且是 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