所有类
|
|||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
org.xml.sax.ext
类 DefaultHandler2
java.lang.Object org.xml.sax.helpers.DefaultHandler org.xml.sax.ext.DefaultHandler2
- 所有已实现的接口:
- ContentHandler, DTDHandler, EntityResolver, ErrorHandler, DeclHandler, EntityResolver2, LexicalHandler
-
public class DefaultHandler2
- extends DefaultHandler
- implements LexicalHandler, DeclHandler, EntityResolver2
此类扩展 SAX2 基本处理程序类,以支持 SAX2 LexicalHandler
、DeclHandler
和 EntityResolver2
扩展。除了重写原始 SAX1 resolveEntity()
方法之外,仅返回添加的处理程序方法。子类可能在逐个方法的基础上重写每个事情。
此模块(包括源代码和文档)在公共域中,同时 没有担保。
注:此类可能仍知道 ContentHandler.setDocumentLocator() 调用可能被传递一个 Locator2
对象,并且 ContentHandler.startElement() 调用被传递一个 Attributes2
对象。
- 从以下版本开始:
- SAX 2.0 (extensions 1.1 alpha)
构造方法摘要 | |
---|---|
DefaultHandler2() 构造忽略所有解析事件的处理程序。 |
方法摘要 | |
---|---|
void |
attributeDecl(String eName, String aName, String type, String mode, String value) 报告属性类型声明。 |
void |
comment(char[] ch, int start, int length) 报告文档的任何位置的 XML 注释。 |
void |
elementDecl(String name, String model) 报告元素类型声明。 |
void |
endCDATA() 报告 CDATA 节的结束。 |
void |
endDTD() 报告 DTD 声明的结束。 |
void |
endEntity(String name) 报告实体的结束。 |
void |
externalEntityDecl(String name, String publicId, String systemId) 报告解析的外部实体声明。 |
InputSource |
getExternalSubset(String name, String baseURI) 告知解析器如果在文档文本中没有声明任何外部子集,则不应使用任何外部子集。 |
void |
internalEntityDecl(String name, String value) 报告内部实体声明。 |
InputSource |
resolveEntity(String publicId, String systemId) 使用 null 实体名称和基 URI 调用 EntityResolver2.resolveEntity() 。 |
InputSource |
resolveEntity(String name, String publicId, String baseURI, String systemId) 告知解析器根据 baseURI 解析 systemId,并从产生的绝对 URI 读取实体文本。 |
void |
startCDATA() 报告 CDATA 节的开始。 |
void |
startDTD(String name, String publicId, String systemId) 报告 DTD 声明的开始(如果存在)。 |
void |
startEntity(String name) 报告一些内部和外部 XML 实体的开始。 |
从类 org.xml.sax.helpers.DefaultHandler 继承的方法 |
---|
characters, endDocument, endElement, endPrefixMapping, error, fatalError, ignorableWhitespace, notationDecl, processingInstruction, setDocumentLocator, skippedEntity, startDocument, startElement, startPrefixMapping, unparsedEntityDecl, warning |
从类 java.lang.Object 继承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
构造方法详细信息 |
---|
DefaultHandler2
public DefaultHandler2()
- 构造忽略所有解析事件的处理程序。
方法详细信息 |
---|
startCDATA
public void startCDATA() throws SAXException
- 从接口
LexicalHandler
复制的描述 -
报告 CDATA 节的开始。
通过常规
characters
事件报告 CDATA 节的内容;此事件仅用于报告边界。 -
- 指定者:
-
接口
LexicalHandler
中的startCDATA
-
- 抛出:
SAXException
- 应用程序可能引发一个异常。- 另请参见:
LexicalHandler.endCDATA()
endCDATA
public void endCDATA() throws SAXException
- 从接口
LexicalHandler
复制的描述 - 报告 CDATA 节的结束。
-
- 指定者:
-
接口
LexicalHandler
中的endCDATA
-
- 抛出:
SAXException
- 应用程序可能引发一个异常。- 另请参见:
LexicalHandler.startCDATA()
startDTD
public void startDTD(String name, String publicId, String systemId) throws SAXException
- 从接口
LexicalHandler
复制的描述 -
报告 DTD 声明的开始(如果存在)。
此方法主要用于报告 DOCTYPE 声明的开始;如果文档没有任何 DOCTYPE 声明,则不调用此方法。
通过
DTDHandler
或DeclHandler
事件报告的所有声明必须在 startDTD 和endDTD
事件之间出现。可以假设声明属于内部 DTD 子集,除非它们在startEntity
和endEntity
事件之间出现。也应该在 startDTD 和 endDTD 事件之间,以事件出现的原始顺序(逻辑)报告 DTD 的注释和处理指令;但是,它们不需要出现在相对于 DTDHandler 或 DeclHandler 事件的正确位置。注意,start/endDTD 事件将出现在 ContentHandler 的 start/endDocument 事件中,并在第一个
startElement
事件之前。 -
- 指定者:
-
接口
LexicalHandler
中的startDTD
-
- 参数:
name
- 文档类型名称。publicId
- 用于外部 DTD 子集的已声明的公共标识符,如果没有声明,则为 null。systemId
- 用于外部 DTD 子集的已声明的系统公共标识符,如果没有声明,则为 null。(注意,这不能根据文档基 URI 解析)- 抛出:
SAXException
- 应用程序可能引发一个异常。- 另请参见:
LexicalHandler.endDTD()
,LexicalHandler.startEntity(java.lang.String)
endDTD
public void endDTD() throws SAXException
- 从接口
LexicalHandler
复制的描述 -
报告 DTD 声明的结束。
此方法主要用于报告 DOCTYPE 声明的结束;如果文档没有任何 DOCTYPE 声明,则不调用此方法。
-
- 指定者:
-
接口
LexicalHandler
中的endDTD
-
- 抛出:
SAXException
- 应用程序可能引发一个异常。- 另请参见:
LexicalHandler.startDTD(java.lang.String, java.lang.String, java.lang.String)
startEntity
public void startEntity(String name) throws SAXException
- 从接口
LexicalHandler
复制的描述 -
报告一些内部和外部 XML 实体的开始。
参数实体(包括外部 DTD 子集)的报告是可选的,报告 LexicalHandler 事件的 SAX2 驱动程序不能实现它;可以使用
http://xml.org/sax/features/lexical-handler/parameter-entities
功能查询或控制参数实体的报告。使用其正规名称报告常规实体,参数实体具有置于其名称前的 "%",并且外部 DTD 子集具有伪实体名 "[dtd]"。
在 SAX2 驱动程序提供这些事件时,所有其他事件必须在开始/结束实体事件中正确嵌套。不存在对来自
DeclHandler
或DTDHandler
的事件进行正确排序的 附加要求。注意,跳过的实体将通过
skippedEntity
事件(是 ContentHandler 接口的一部分)报告。由于 SAX 使用的流事件模型,不能在任何环境下报告某些实体边界:
- 属性值中的常规实体
- 声明中的参数实体
将默认扩展上述实体,而不指示原始实体边界的位置。
还要注意,不报告字符引用(实际上它不是实体)的边界。
必须正确嵌套所有 start/endEntity 事件。
-
- 指定者:
-
接口
LexicalHandler
中的startEntity
-
- 参数:
name
- 实体的名称。如果是参数实体,则名称将以 "%" 开头,如果是外部 DTD 子集,则将是 "[dtd]"。- 抛出:
SAXException
- 应用程序可能引发一个异常。- 另请参见:
LexicalHandler.endEntity(java.lang.String)
,DeclHandler.internalEntityDecl(java.lang.String, java.lang.String)
,DeclHandler.externalEntityDecl(java.lang.String, java.lang.String, java.lang.String)
endEntity
public void endEntity(String name) throws SAXException
- 从接口
LexicalHandler
复制的描述 - 报告实体的结束。
-
- 指定者:
-
接口
LexicalHandler
中的endEntity
-
- 参数:
name
- 正在结束的实体名称。- 抛出:
SAXException
- 应用程序可能引发一个异常。- 另请参见:
LexicalHandler.startEntity(java.lang.String)
comment
public void comment(char[] ch, int start, int length) throws SAXException
- 从接口
LexicalHandler
复制的描述 -
报告文档的任何位置的 XML 注释。
此回调将用于文档元素内外的注释,包括外部 DTD 子集中的注释(如果读取)。必须在 start/endDTD 和 start/endEntity 事件内部正确嵌套 DTD 中的注释(如果已使用)。
-
- 指定者:
-
接口
LexicalHandler
中的comment
-
- 参数:
ch
- 保存注释中的字符的数组。start
- 数组中的开始位置。length
- 使用的数组中的字符数。- 抛出:
SAXException
- 应用程序可能引发一个异常。