|
JavaTM Platform Standard Ed. 6 |
|||||||||
| 上一个类 下一个类 | 框架 无框架 | |||||||||
| 摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 | |||||||||
java.lang.Objectorg.xml.sax.helpers.DefaultHandler
org.xml.sax.ext.DefaultHandler2
public class DefaultHandler2
此类扩展 SAX2 基本处理程序类,以支持 SAX2 LexicalHandler、DeclHandler 和 EntityResolver2 扩展。除了重写原始 SAX1 resolveEntity() 方法之外,仅返回添加的处理程序方法。子类可能在逐个方法的基础上重写每个事情。
此模块(包括源代码和文档)在公共域中,同时 没有担保。
注:此类可能仍知道 ContentHandler.setDocumentLocator() 调用可能被传递一个 Locator2 对象,并且 ContentHandler.startElement() 调用被传递一个 Attributes2 对象。
| 构造方法摘要 | |
|---|---|
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 |
| 构造方法详细信息 |
|---|
public DefaultHandler2()
| 方法详细信息 |
|---|
public void startCDATA()
throws SAXException
LexicalHandler 复制的描述
通过常规 characters 事件报告 CDATA 节的内容;此事件仅用于报告边界。
LexicalHandler 中的
startCDATA
SAXException - 应用程序可能引发一个异常。
LexicalHandler.endCDATA()
public void endCDATA()
throws SAXException
LexicalHandler 复制的描述
LexicalHandler 中的
endCDATA
SAXException - 应用程序可能引发一个异常。
LexicalHandler.startCDATA()
public void startDTD(String name,
String publicId,
String systemId)
throws SAXException
LexicalHandler 复制的描述
此方法主要用于报告 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)
public void endDTD()
throws SAXException
LexicalHandler 复制的描述
此方法主要用于报告 DOCTYPE 声明的结束;如果文档没有任何 DOCTYPE 声明,则不调用此方法。
LexicalHandler 中的
endDTD
SAXException - 应用程序可能引发一个异常。
LexicalHandler.startDTD(java.lang.String, java.lang.String, java.lang.String)
public void startEntity(String name)
throws SAXException
LexicalHandler 复制的描述
参数实体(包括外部 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)
public void endEntity(String name)
throws SAXException
LexicalHandler 复制的描述
LexicalHandler 中的
endEntity
name - 正在结束的实体名称。
SAXException - 应用程序可能引发一个异常。
LexicalHandler.startEntity(java.lang.String)
public void comment(char[] ch,
int start,
int length)
throws SAXException
LexicalHandler 复制的描述
此回调将用于文档元素内外的注释,包括外部 DTD 子集中的注释(如果读取)。必须在 start/endDTD 和 start/endEntity 事件内部正确嵌套 DTD 中的注释(如果已使用)。
LexicalHandler 中的
comment
ch - 保存注释中的字符的数组。
start - 数组中的开始位置。
length - 使用的数组中的字符数。
SAXException - 应用程序可能引发一个异常。
public void attributeDecl(String eName,
String aName,
String type,
String mode,
String value)
throws SAXException
DeclHandler 复制的描述
将仅报告属性的有效(第一个)声明。类型将是以下字符串之一:"CDATA"、"ID"、"IDREF"、"IDREFS"、"NMTOKEN"、"NMTOKENS"、"ENTITY"、"ENTITIES"、移除所有空格的带有分隔符 "|" 的加上括号的标记组,或后跟一个空格再跟随移除所有空白的加上括号的标记组的单词 "NOTATION"。
值将是报告给应用程序、被适当标准化的值,它带有实体和扩展的字符引用。
DeclHandler 中的
attributeDecl
eName - 关联元素的名称。
aName - 属性的名称。
type - 表示属性类型的字符串。
mode - 表示属性默认模式("#IMPLIED"、"#REQUIRED" 或 "#FIXED")的字符串,如果不应用上述模式,则为 null。
value - 表示属性的默认值的字符串,如果不存在,则为 null。
SAXException - 应用程序可能引发一个异常。
public void elementDecl(String name,
String model)
throws SAXException
DeclHandler 复制的描述
内容模型将由字符串 "EMPTY"、字符串 "ANY" 或用括号括起来的组组成,可以选择后面跟随一个出现指示符。将使模型标准化,以便完全解析所有的参数实体,并移除所有的空白,并将包括括号。其他标准化(例如,移除多余的括号或简化出现指示符)是由解析器决定的。
DeclHandler 中的
elementDecl
name - 元素类型名称。
model - 作为标准化字符串的内容模型。
SAXException - 应用程序可能引发一个异常。
public void externalEntityDecl(String name,
String publicId,
String systemId)
throws SAXException
DeclHandler 复制的描述
将仅报告每个实体的有效(第一个)声明。
如果系统标识符是 URL,则解析器必须在将它传递给应用程序之前完全解析它。
DeclHandler 中的
externalEntityDecl
name - 实体的名称。如果是参数实体,则名称以 "%" 开头。
publicId - 实体的公共标识符,如果没有给定,则为 null。
systemId - 实体的系统标识符。
SAXException - 应用程序可能引发一个异常。
DeclHandler.internalEntityDecl(java.lang.String, java.lang.String),
DTDHandler.unparsedEntityDecl(java.lang.String, java.lang.String, java.lang.String, java.lang.String)
public void internalEntityDecl(String name,
String value)
throws SAXException
DeclHandler 复制的描述
将仅报告每个实体的有效(第一个)声明。将扩展值中的所有参数实体,但不扩展常规实体。
DeclHandler 中的
internalEntityDecl
name - 实体的名称。如果是参数实体,则名称以 "%" 开头。
value - 实体的替换文本。
SAXException - 应用程序可能引发一个异常。
DeclHandler.externalEntityDecl(java.lang.String, java.lang.String, java.lang.String),
DTDHandler.unparsedEntityDecl(java.lang.String, java.lang.String, java.lang.String, java.lang.String)
public InputSource getExternalSubset(String name,
String baseURI)
throws SAXException,
IOException
EntityResolver2 中的
getExternalSubset
name - 标识文档根元素。此名称来自 DOCTYPE 声明(如果可用),或来自实际的根元素。
baseURI - 文档的基 URI,充当选择外部子集的附加提示。这总是一个绝对 URI,除非由于向 XMLReader 提供了一个不带 URI 的 InputSource 而使它为 null 时。
SAXException - 任何 SAX 异常,可能包装另外的异常。
IOException - 可能指示创建新的 InputStream 或 Reader 失败,或非法 URL。
public InputSource resolveEntity(String name,
String publicId,
String baseURI,
String systemId)
throws SAXException,
IOException
DefaultHandler.resolveEntity() 方法以调用此方法,所以有时可以使用 null
名称 和
baseURI 以及已经绝对化的
systemId 调用此方法。
EntityResolver2 中的
resolveEntity
name - 标识正被解析的外部实体。外部子集的 "[dtd]",或者以 "%" 开头用来指示参数实体的名称,或者常规实体的名称。在由 SAX2 解析器调用时,它永不能为 null。
publicId - 被引用的外部实体的公共标识符(按照 XML 规范的要求标准化),如果不提供任何内容,则为 null。
baseURI - 关于解释哪个相对 systemID 的 URI。这总是一个绝对 URI,除非它为 null(可能因为向 XMLReader 提供了一个不带 URI 的 InputSource)。XML 规范定义了此 URI,它是与开始相关声明的 "<" 相关联的 URI。
systemId - 引用的外部实体的系统标识符;相对 URI 或绝对 URI。由 SAX2 解析器调用时,它从不能为 null;此类解析器仅解析声明的实体和任何外部子集。
SAXException - 任何 SAX 异常,可能包装另外的异常。
IOException - 可能指示创建新的 InputStream 或 Reader 失败,或非法 URL。
public InputSource resolveEntity(String publicId,
String systemId)
throws SAXException,
IOException
EntityResolver2.resolveEntity()。为使用此类,只需重写该方法。
EntityResolver 中的
resolveEntity
DefaultHandler 中的
resolveEntity
publicId - 公共标识符,如果没有可用的,则为 null。
systemId - 在 XML 文档中提供的系统标识符。
SAXException - 任何 SAX 异常,可能包装另外的异常。
IOException - 特定于 Java 的 IO 异常,可能是由于为 InputSource 创建新的 InputStream 或 Reader 所导致的。
EntityResolver.resolveEntity(java.lang.String, java.lang.String)
|
JavaTM Platform Standard Ed. 6 |
|||||||||
| 上一个类 下一个类 | 框架 无框架 | |||||||||
| 摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 | |||||||||
版权所有 2007 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策。