-
- 所有已知实现类:
-
DefaultHandler2
public interface DeclHandler
用于DTD声明事件的SAX2扩展处理程序。This module, both source code and documentation, is in the Public Domain, and comes with NO WARRANTY. See http://www.saxproject.org for further information.
这是SAX2的可选扩展处理程序,可以在XML文档中提供有关DTD声明的更完整的信息。 XML读取器不需要识别此处理程序,它不是仅核心的SAX2发行版的一部分。
请注意,数据相关的DTD声明(未解析的实体和符号)已通过
DTDHandler
接口报告。如果您使用声明处理程序和词法处理程序,则所有事件将发生在
startDTD
和endDTD
事件之间。要为XML读取器设置DeclHandler,请使用属性名称为
http://xml.org/sax/properties/declaration-handler
的setProperty
方法和实现此接口(或null)的对象作为值。 如果读者没有报告声明事件,当您尝试注册处理程序时,它将抛出一个SAXNotRecognizedException
。- 从以下版本开始:
- 1.4,SAX 2.0(扩展1.0)
-
-
方法摘要
所有方法 接口方法 抽象方法 Modifier and Type 方法 描述 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)
报告内部实体声明。
-
-
-
方法详细信息
-
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”)的字符串,如果不适用,则为空。 -
value
- 表示属性默认值的字符串,如果没有,则返回null。 - 异常
-
SAXException
- 应用程序可能会引发异常。
-
internalEntityDecl
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)
-
externalEntityDecl
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)
-
-