public class DefaultHandler2 extends DefaultHandler implements LexicalHandler, DeclHandler, EntityResolver2
LexicalHandler
,
DeclHandler
,和
EntityResolver2
扩展。除了最原始的SAX1
resolveEntity()
方法添加处理方法只是返回。subclassers可能通过方法的基础上重写的方法上的一切。
This module, both source code and documentation, is in the Public Domain, and comes with NO WARRANTY.
注:这类可能尚未得知ContentHandler。setdocumentlocator()呼叫可以通过Locator2
对象,并调用ContentHandler。startelement()可能通过Attributes2
对象。
Constructor and Description |
---|
DefaultHandler2()
构造一个忽略所有解析事件的处理程序。
|
Modifier and Type | Method and Description |
---|---|
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)
调用
EntityResolver2.resolveEntity() 空实体名称和基URI。
|
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实体的开始。
|
characters, endDocument, endElement, endPrefixMapping, error, fatalError, ignorableWhitespace, notationDecl, processingInstruction, setDocumentLocator, skippedEntity, startDocument, startElement, startPrefixMapping, unparsedEntityDecl, warning
public void startCDATA() throws SAXException
LexicalHandler
CDATA区域的内容将通过定期characters
事件报道;此事件仅报告边界。
startCDATA
接口
LexicalHandler
SAXException
-应用程序可能会引发一个异常。
LexicalHandler.endCDATA()
public void endCDATA() throws SAXException
LexicalHandler
endCDATA
接口
LexicalHandler
SAXException
-应用程序可能会引发一个异常。
LexicalHandler.startCDATA()
public void startDTD(String name, String publicId, String systemId) throws SAXException
LexicalHandler
这种方法的目的是报告的DOCTYPE声明的开始;如果文档没有DOCTYPE声明,这种方法不会被调用。
所有声明报道通过DTDHandler
或DeclHandler
事件必须startdtd和endDTD
事件之间出现。声明被认为属于内部DTD子集除非出现startEntity
和endEntity
事件之间。评论从DTD指示也应startdtd和enddtd事件之间的报告和处理,在原有的秩序(逻辑)的出现;他们也不需要出现在正确的位置相对dtdhandler或declhandler事件,然而。
注意:开始/ enddtd事件将出现在启动/专件事件在第一startElement
ContentHandler和事件。
startDTD
接口
LexicalHandler
name
-文档类型名称。
publicId
-公共标识符声明外部DTD子集,或者如果没有被宣布无效。
systemId
-申报系统外部DTD子集标识符,或空如果没有宣布。(注意,这是没有解决对文件的基URI。)
SAXException
-应用程序可能会引发一个异常。
LexicalHandler.endDTD()
,
LexicalHandler.startEntity(java.lang.String)
public void endDTD() throws SAXException
LexicalHandler
这种方法的目的是报告的DOCTYPE声明结束;如果文档没有DOCTYPE声明,这种方法不会被调用。
endDTD
接口
LexicalHandler
SAXException
-应用程序可能会引发一个异常。
LexicalHandler.startDTD(java.lang.String, java.lang.String, java.lang.String)
public void startEntity(String name) throws SAXException
LexicalHandler
参数实体的报告(包括外部DTD子集)是可选的,与SAX2驱动LexicalHandler报告事件不可能实现它;你可以使用http://xml.org/sax/features/lexical-handler/parameter-entities
特征查询或控制参数实体的报告。
通用实体是报告他们的正规名称,参数实体“%”添加到他们的名字,和外部DTD子集具有伪实体名称“[定义]”。
当SAX2驱动程序提供这些事件,所有其他的事件必须被正确的嵌套在开始/结束实体事件。没有额外的要求,从DeclHandler
或DTDHandler
事件妥善有序。
注意,跳过实体将通过skippedEntity
事件的报道,这是ContentHandler接口部分。
因为流事件模型,SAX使用,一些实体边界不能报告任何情况下:
这些将被悄悄地扩大,没有任何迹象表明,原来的实体边界。
请注意,字符引用的边界(不是真正的实体)没有被报道。
所有的开始/ endentity事件必须被正确的嵌套。
startEntity
接口
LexicalHandler
name
-单位名称。如果它是一个参数实体的名称将开始与“%”,如果是外部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
endEntity
接口
LexicalHandler
name
的名称,是实体的结局。
SAXException
-应用程序可能会引发一个异常。
LexicalHandler.startEntity(java.lang.String)
public void comment(char[] ch, int start, int length) throws SAXException
LexicalHandler
这个回调将用于文档元素的内部或外部的评论,包括在外部DTD子集的评论(如阅读)。在DTD中的评论必须正确嵌套在启动/ enddtd和启动/ endentity事件(如果使用)。
comment
接口
LexicalHandler
ch
-一个在评论着字符数组。
start
-数组中的起始位置。
length
-字符数使用数组。
SAXException
-应用程序可能会引发一个异常。
public void attributeDecl(String eName, String aName, String type, String mode, String value) throws SAXException
DeclHandler
只有有效的(第一)声明的属性将被报告。类型将一个字符串“我”、“本我”、“象征”、“IDREFS”、“象征”、“这些”、“实体”,“实体”,一个括号标记组与分离器”|”和所有的空格去掉,或“符号”后面的空间中的所有空格去掉括号标记组。
该值将是报告的应用程序的值,适当地规范化,并与实体和字符引用扩展。
attributeDecl
接口
DeclHandler
eName
-相关的元素的名称。
aName
-属性的名称。
type
-一个字符串类型的属性。
mode
-一个字符串属性默认模式(“#暗示”、“#要求”,或“#固定”)或空如果没有这些应用。
value
-一个字符串属性的默认值为空,或者如果没有。
SAXException
-应用程序可能会引发一个异常。
public void elementDecl(String name, String model) throws SAXException
DeclHandler
内容模型包含字符串“空”,字符串“任何”,或一个圆括号组,后跟一个指标发生。该模型将归一化后,所有参数实体完全解决所有的空格去掉,并将包括圆括号。其他正常化(如删除多余的括号或简化的发生指标)是在自由裁量权的解析器。
elementDecl
接口
DeclHandler
name
-元素类型的名称。
model
-内容模型作为正常化的字符串。
SAXException
-应用程序可能会引发一个异常。
public void externalEntityDecl(String name, String publicId, String systemId) throws SAXException
DeclHandler
只有有效的(第一)声明为每个实体将被报告。
如果系统标识符是一个链接,解析器必须完全解析它,才将它传递给应用程序。
externalEntityDecl
接口
DeclHandler
name
-单位名称。如果它是一个参数实体,名称将以“%”开始。
publicId
-实体的公共标识符,或空如果没有了。
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
只有有效的(第一)声明为每个实体将被报告。在值中的所有参数实体将被扩展,但一般实体将不会被扩展。
internalEntityDecl
接口
DeclHandler
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
getExternalSubset
接口
EntityResolver2
name
标识文档根元素。这个名字来自一个DOCTYPE声明(如适用)或从实际的根元素。
baseURI
-文档的基URI作为一个额外的提示选择外部子集。这是一个绝对的URI,除非它是空的,了无一inputsource XmlReader。
SAXException
-萨克斯例外,可能是包装的另一个例外。
IOException
可能指示未能创建一个新的InputStream或Reader,或非法的URL。
public InputSource resolveEntity(String name, String publicId, String baseURI, String systemId) throws SAXException, IOException
DefaultHandler.resolveEntity()
,方法被重写为一,这种方法有时会与空名,baseuri调用,并与systemid已经绝对化。
resolveEntity
接口
EntityResolver2
name
标识解决外部实体。“[定义]“外部子集,或者一个名字开始与“%”来表示一个参数的实体,否则一般实体的名称。这是从来没有空时调用SAX2解析器。
publicId
-公众的外部实体引用的标识符(标准化的XML规范要求),如果提供的是无或空。
baseURI
- URI相对于它的相对系统的解释。这是一个绝对的URI,除非它是空的(可能是因为在被给予inputsource不一)。这个URI是由XML规范定义为一个与“<”开始申报。
systemId
-外部实体引用的标识符系统;要么是一个相对或绝对URI。这是从来没有空时调用SAX2解析器;只有宣布实体,和任何外部子集,通过这样的解析器解析。
SAXException
-萨克斯例外,可能是包装的另一个例外。
IOException
可能指示未能创建一个新的InputStream或Reader,或非法的URL。
public InputSource resolveEntity(String publicId, String systemId) throws SAXException, IOException
EntityResolver2.resolveEntity()
空实体名称和基URI。您只需要重写该类的方法。
resolveEntity
接口
EntityResolver
resolveEntity
方法重写,继承类
DefaultHandler
publicId
-公共标识符,或null,如果没有可用的。
systemId
- XML文档中提供的标识系统。
SAXException
-萨克斯例外,可能是包装的另一个例外。
IOException
- java具体IO异常,可能创造新的inputsource InputStream或Reader的结果。
EntityResolver.resolveEntity(java.lang.String, java.lang.String)
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.