public interface DeclHandler
用于 DTD 声明事件的 SAX2 扩展处理程序。
此模块(包括源代码和文档)在公共域中,同时 没有担保。有关更多信息,请参阅 http://www.saxproject.org。
这是 SAX2 的一个可选扩展处理程序,以提供有关 XML 文档中 DTD 声明的更完整信息。不需要 XML 阅读器识别此处理程序,它不是仅核心 SAX2 分发的一部分。
注意,已经通过 DTDHandler 接口报告与数据相关的 DTD 声明(未解析的实体和注释)。
如果将声明处理程序与词法处理程序一起使用,则在 startDTD 和 endDTD 事件之间将发生所有事件。
要为 XML 阅读器设置 DeclHandler,使用带有属性名称 http://xml.org/sax/properties/declaration-handler 的 setProperty 方法以及将此接口(或 null)实现为该值的对象。如果阅读器不报告声明事件,则尝试注册处理程序时,它将抛出 SAXNotRecognizedException。
| 方法摘要 | |
|---|---|
  void |  
     attributeDecl(String eName, String aName, String type, String mode, String value) 报告属性类型声明。  |  
    
  void |  
     elementDecl(String name, String model) 报告元素类型声明。  |  
    
  void |  
     externalEntityDecl(String name, String publicId, String systemId) 报告解析的外部实体声明。  |  
    
  void |  
     internalEntityDecl(String name, String value) 报告内部实体声明。  |  
    
| 方法详细信息 | 
|---|
void elementDecl(String name, String model) throws SAXException
内容模型将由字符串 "EMPTY"、字符串 "ANY" 或用括号括起来的组组成,可以选择后面跟随一个出现指示符。将使模型标准化,以便完全解析所有的参数实体,并移除所有的空白,并将包括括号。其他标准化(例如,移除多余的括号或简化出现指示符)是由解析器决定的。
name - 元素类型名称。
     model - 作为标准化字符串的内容模型。 
     SAXException - 应用程序可能引发一个异常。
     void attributeDecl(String eName, String aName, String type, String mode, String value) throws SAXException
将仅报告属性的有效(第一个)声明。类型将是以下字符串之一:"CDATA"、"ID"、"IDREF"、"IDREFS"、"NMTOKEN"、"NMTOKENS"、"ENTITY"、"ENTITIES"、移除所有空格的带有分隔符 "|" 的加上括号的标记组,或后跟一个空格再跟随移除所有空白的加上括号的标记组的单词 "NOTATION"。
值将是报告给应用程序、被适当标准化的值,它带有实体和扩展的字符引用。
eName - 关联元素的名称。
     aName - 属性的名称。
     type - 表示属性类型的字符串。
     mode - 表示属性默认模式("#IMPLIED"、"#REQUIRED" 或 "#FIXED")的字符串,如果不应用上述模式,则为 null。
     value - 表示属性的默认值的字符串,如果不存在,则为 null。 
     SAXException - 应用程序可能引发一个异常。
     void internalEntityDecl(String name, String value) throws SAXException
将仅报告每个实体的有效(第一个)声明。将扩展值中的所有参数实体,但不扩展常规实体。
name - 实体的名称。如果是参数实体,则名称以 "%" 开头。
     value - 实体的替换文本。 
     SAXException - 应用程序可能引发一个异常。
     externalEntityDecl(java.lang.String, java.lang.String, java.lang.String), 
      DTDHandler.unparsedEntityDecl(java.lang.String, java.lang.String, java.lang.String, java.lang.String)
     void externalEntityDecl(String name, String publicId, String systemId) throws SAXException
将仅报告每个实体的有效(第一个)声明。
如果系统标识符是 URL,则解析器必须在将它传递给应用程序之前完全解析它。
name - 实体的名称。如果是参数实体,则名称以 "%" 开头。
     publicId - 实体的公共标识符,如果没有给定,则为 null。
     systemId - 实体的系统标识符。 
     SAXException - 应用程序可能引发一个异常。
     internalEntityDecl(java.lang.String, java.lang.String), 
      DTDHandler.unparsedEntityDecl(java.lang.String, java.lang.String, java.lang.String, java.lang.String)