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)