public interface LexicalHandler
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文档的词汇信息的可选扩展处理程序,如评论和CDATA部分边界。XML的读者不需要承认这个处理程序,它不属于核心SAX2分布。
在词汇处理的事件应用于整个文档,不只是文档元素,和所有的词汇处理事件必须内容处理程序是StartDocument和专件事件之间出现。
为一个XML阅读器设置LexicalHandler,使用属性名称http://xml.org/sax/properties/lexical-handler
和实现此接口的对象的setProperty
方法(或零)的价值。如果读者不报告词汇事件,它将SAXNotRecognizedException
当你试图登记处理程序。
Modifier and Type | Method and Description |
---|---|
void |
comment(char[] ch, int start, int length)
在文档中的任何地方报告一个XML注释。
|
void |
endCDATA()
报告一个CDATA节结束。
|
void |
endDTD()
DTD声明的最后报告。
|
void |
endEntity(String name)
报告实体的结束。
|
void |
startCDATA()
报告一个CDATA部分的开始。
|
void |
startDTD(String name, String publicId, String systemId)
报告的DTD声明的开始,如果任何。
|
void |
startEntity(String name)
报告一些内部和外部的XML实体的开始。
|
void startDTD(String name, String publicId, String systemId) throws SAXException
这种方法的目的是报告的DOCTYPE声明的开始;如果文档没有DOCTYPE声明,这种方法不会被调用。
所有声明报道通过DTDHandler
或DeclHandler
事件必须startdtd和endDTD
事件之间出现。声明被认为属于内部DTD子集除非出现startEntity
和endEntity
事件之间。评论从DTD指示也应startdtd和enddtd事件之间的报告和处理,在原有的秩序(逻辑)的出现;他们也不需要出现在正确的位置相对dtdhandler或declhandler事件,然而。
注意:开始/ enddtd事件将出现在启动/专件事件在第一startElement
ContentHandler和事件。
name
-文档类型名称。
publicId
-公共标识符声明外部DTD子集,或者如果没有被宣布无效。
systemId
-申报系统外部DTD子集标识符,或空如果没有宣布。(注意,这是没有解决对文件的基URI。)
SAXException
-应用程序可能会引发一个异常。
endDTD()
,
startEntity(java.lang.String)
void endDTD() throws SAXException
这种方法的目的是报告的DOCTYPE声明结束;如果文档没有DOCTYPE声明,这种方法不会被调用。
SAXException
-应用程序可能会引发一个异常。
startDTD(java.lang.String, java.lang.String, java.lang.String)
void startEntity(String name) throws SAXException
参数实体的报告(包括外部DTD子集)是可选的,与SAX2驱动LexicalHandler报告事件不可能实现它;你可以使用http://xml.org/sax/features/lexical-handler/parameter-entities
特征查询或控制参数实体的报告。
通用实体是报告他们的正规名称,参数实体“%”添加到他们的名字,和外部DTD子集具有伪实体名称“[定义]”。
当SAX2驱动程序提供这些事件,所有其他的事件必须被正确的嵌套在开始/结束实体事件。没有额外的要求,从DeclHandler
或DTDHandler
事件妥善有序。
注意,跳过实体将通过skippedEntity
事件的报道,这是ContentHandler接口部分。
因为流事件模型,SAX使用,一些实体边界不能报告任何情况下:
这些将被悄悄地扩大,没有任何迹象表明,原来的实体边界。
请注意,字符引用的边界(不是真正的实体)没有被报道。
所有的开始/ endentity事件必须被正确的嵌套。
name
-单位名称。如果它是一个参数实体的名称将开始与“%”,如果是外部DTD子集,它将“[定义]”。
SAXException
-应用程序可能会引发一个异常。
endEntity(java.lang.String)
,
DeclHandler.internalEntityDecl(java.lang.String, java.lang.String)
,
DeclHandler.externalEntityDecl(java.lang.String, java.lang.String, java.lang.String)
void endEntity(String name) throws SAXException
name
的名称,是实体的结局。
SAXException
-应用程序可能会引发一个异常。
startEntity(java.lang.String)
void startCDATA() throws SAXException
CDATA区域的内容将通过定期characters
事件报道;此事件仅报告边界。
SAXException
-应用程序可能会引发一个异常。
endCDATA()
void endCDATA() throws SAXException
SAXException
-应用程序可能会引发一个异常。
startCDATA()
void comment(char[] ch, int start, int length) throws SAXException
这个回调将用于文档元素的内部或外部的评论,包括在外部DTD子集的评论(如阅读)。在DTD中的评论必须正确嵌套在启动/ enddtd和启动/ endentity事件(如果使用)。
ch
-一个在评论着字符数组。
start
-数组中的起始位置。
length
-字符数使用数组。
SAXException
-应用程序可能会引发一个异常。
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.