Module java.xml
Package org.xml.sax.ext

Interface DeclHandler

所有已知的实现类:
DefaultHandler2

public interface DeclHandler
DTD声明事件的SAX2扩展处理程序。

这是SAX2的可选扩展处理程序,用于提供关于XML文档中DTD声明的更完整信息。XML读取器不需要识别此处理程序,并且它不是仅包含核心的SAX2发行版的一部分。

请注意,与数据相关的DTD声明(未解析的实体和符号)已通过DTDHandler接口报告。

如果您将声明处理程序与词法处理程序一起使用,则所有事件将发生在startDTDendDTD事件之间。

要为XML读取器设置DeclHandler,请使用属性名称为http://xml.org/sax/properties/declaration-handler,值为实现此接口的对象(或null)。如果读取器不报告声明事件,则在尝试注册处理程序时会抛出SAXNotRecognizedException

自从:
1.4, SAX 2.0 (扩展 1.0)
  • Method Details

    • elementDecl

      void elementDecl(String name, String model) throws SAXException
      报告元素类型声明。

      内容模型将由字符串"EMPTY"、字符串"ANY"或带有出现指示符的括号组成,可选地跟随。模型将被规范化,以便所有参数实体都得到完全解析,所有空格都被移除,并且将包括封闭括号。其他规范化(例如删除冗余括号或简化出现指示符)由解析器自行决定。

      参数:
      name - 元素类型名称。
      model - 规范化字符串形式的内容模型。
      抛出:
      SAXException - 应用程序可能会引发异常。
    • attributeDecl

      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 - 应用程序可能会引发异常。
    • internalEntityDecl

      void internalEntityDecl(String name, String value) throws SAXException
      报告内部实体声明。

      仅报告每个实体的有效(第一个)声明。值中的所有参数实体将被展开,但一般实体不会被展开。

      参数:
      name - 实体的名称。如果是参数实体,则名称将以'%'开头。
      value - 实体的替换文本。
      抛出:
      SAXException - 应用程序可能会引发异常。
      参见:
    • externalEntityDecl

      void externalEntityDecl(String name, String publicId, String systemId) throws SAXException
      报告已解析的外部实体声明。

      仅报告每个实体的有效(第一个)声明。

      如果系统标识符是URL,则解析器必须在将其传递给应用程序之前完全解析它。

      参数:
      name - 实体的名称。如果是参数实体,则名称将以'%'开头。
      publicId - 实体的公共标识符,如果没有给出则为null。
      systemId - 实体的系统标识符。
      抛出:
      SAXException - 应用程序可能会引发异常。
      参见: