public interface DeclHandler
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
。
Modifier and Type | Method and Description |
---|---|
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”)的字符串,如果不适用,则为空。
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)