-
- 所有已知实现类:
-
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分发的一部分。
请注意,已通过
DTDHandler
接口报告与数据相关的DTD声明(未解析的实体和表示法)。如果您将声明处理程序与词法处理程序一起使用,则所有事件都将发生在
startDTD
和endDTD
事件之间。要为XML阅读器设置DeclHandler,请使用属性名称为
http://xml.org/sax/properties/declaration-handler
的setProperty
方法和实现此接口的对象(或null)作为值。 如果读者未报告声明事件,则在尝试注册处理程序时将抛出SAXNotRecognizedException
。- 从以下版本开始:
- 1.4,SAX 2.0(扩展1.0)
-
-
方法摘要
所有方法 实例方法 抽象方法 变量和类型 方法 描述 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”)的字符串,如果这些都不适用,则为null。 -
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)
-
-