Most visited

Recently visited

Added in API level 1

Driver

public class Driver
extends Object implements Locator, XMLReader, Attributes

java.lang.Object
   ↳ org.xmlpull.v1.sax2.Driver


SAX2驱动程序,它从XmlPullParser中提取事件并将它们转换为SAX2回调函数。

Summary

Constants

String APACHE_DYNAMIC_VALIDATION_FEATURE

String APACHE_SCHEMA_VALIDATION_FEATURE

String DECLARATION_HANDLER_PROPERTY

String LEXICAL_HANDLER_PROPERTY

String NAMESPACES_FEATURE

String NAMESPACE_PREFIXES_FEATURE

String VALIDATION_FEATURE

Fields

protected ContentHandler contentHandler

protected ErrorHandler errorHandler

protected XmlPullParser pp

protected String systemId

Public constructors

Driver()
Driver(XmlPullParser pp)

Public methods

int getColumnNumber()

返回当前文档事件结束的列号。

ContentHandler getContentHandler()

返回当前的内容处理程序。

DTDHandler getDTDHandler()

返回当前的DTD处理程序。

EntityResolver getEntityResolver()

返回当前的实体解析器。

ErrorHandler getErrorHandler()

返回当前的错误处理程序。

boolean getFeature(String name)

查找功能标志的值。

int getIndex(String qName)

通过XML限定(前缀)名称查找属性的索引。

int getIndex(String uri, String localName)

按名称空间名称查找属性的索引。

int getLength()

返回列表中的属性数量。

int getLineNumber()

返回当前文档事件结束的行号。

String getLocalName(int index)

通过索引查找属性的本地名称。

Object getProperty(String name)

查找一个属性的值。

String getPublicId()

返回当前文档事件的公共标识符。

String getQName(int index)

按索引查找属性的XML限定(前缀)名称。

String getSystemId()

返回当前文档事件的系统标识符。

String getType(int index)

按索引查找属性的类型。

String getType(String uri, String localName)

按名称空间名称查找属性的类型。

String getType(String qName)

按XML限定(前缀)名称查找属性的类型。

String getURI(int index)

通过索引查找属性的名称空间URI。

String getValue(int index)

按索引查找属性值。

String getValue(String qName)

按XML限定(前缀)名称查找属性的值。

String getValue(String uri, String localName)

按名称空间名称查找属性值。

void parse(String systemId)

从系统标识符(URI)解析XML文档。

void parse(InputSource source)

解析一个XML文档。

void parseSubTree(XmlPullParser pp)
void setContentHandler(ContentHandler handler)

允许应用程序注册内容事件处理程序。

void setDTDHandler(DTDHandler handler)

允许应用程序注册DTD事件处理程序。

void setEntityResolver(EntityResolver resolver)

允许应用程序注册实体解析器。

void setErrorHandler(ErrorHandler handler)

允许应用程序注册错误事件处理程序。

void setFeature(String name, boolean value)

设置功能标志的值。

void setProperty(String name, Object value)

设置属性的值。

Protected methods

void startElement(String namespace, String localName, String qName)

呼吁 startElementContentHandlerthis驱动程序对象为 Attributes的实现。

Inherited methods

From class java.lang.Object
From interface org.xml.sax.Locator
From interface org.xml.sax.XMLReader
From interface org.xml.sax.Attributes

Constants

APACHE_DYNAMIC_VALIDATION_FEATURE

Added in API level 1
String APACHE_DYNAMIC_VALIDATION_FEATURE

常量值:“http://apache.org/xml/features/validation/dynamic”

APACHE_SCHEMA_VALIDATION_FEATURE

Added in API level 1
String APACHE_SCHEMA_VALIDATION_FEATURE

常量值:“http://apache.org/xml/features/validation/schema”

DECLARATION_HANDLER_PROPERTY

Added in API level 1
String DECLARATION_HANDLER_PROPERTY

常量值:“http://xml.org/sax/properties/declaration-handler”

LEXICAL_HANDLER_PROPERTY

Added in API level 1
String LEXICAL_HANDLER_PROPERTY

常量值:“http://xml.org/sax/properties/lexical-handler”

NAMESPACES_FEATURE

Added in API level 1
String NAMESPACES_FEATURE

常量值:“http://xml.org/sax/features/namespaces”

NAMESPACE_PREFIXES_FEATURE

Added in API level 1
String NAMESPACE_PREFIXES_FEATURE

常量值:“http://xml.org/sax/features/namespace-prefixes”

VALIDATION_FEATURE

Added in API level 1
String VALIDATION_FEATURE

常量值:“http://xml.org/sax/features/validation”

Fields

contentHandler

Added in API level 1
ContentHandler contentHandler

errorHandler

Added in API level 1
ErrorHandler errorHandler

pp

Added in API level 1
XmlPullParser pp

systemId

Added in API level 1
String systemId

Public constructors

Driver

Added in API level 1
Driver ()

Throws
XmlPullParserException

Driver

Added in API level 1
Driver (XmlPullParser pp)

Parameters
pp XmlPullParser
Throws
XmlPullParserException

Public methods

getColumnNumber

Added in API level 1
int getColumnNumber ()

返回当前文档事件结束的列号。 这是自上一行结束以来Java char值的一个数字。

警告:该方法的返回值仅用于诊断的近似值; 它并不打算提供足够的信息来编辑原始XML文档的字符内容。 例如,当行包含组合字符序列,宽字符,代理对或双向文本时,该值可能不对应于文本编辑器显示中的列。

返回值是触发事件的标记出现的文档实体或外部解析实体中的列号的近似值。

如果可能,SAX驱动程序应在与文档事件关联的文本之后提供第一个字符的行位置。 每行的第一列是第1列。

Returns
int The column number, or -1 if none is available.

getContentHandler

Added in API level 1
ContentHandler getContentHandler ()

返回当前的内容处理程序。

Returns
ContentHandler The current content handler, or null if none has been registered.

getDTDHandler

Added in API level 1
DTDHandler getDTDHandler ()

返回当前的DTD处理程序。

Returns
DTDHandler The current DTD handler, or null if none has been registered.

getEntityResolver

Added in API level 1
EntityResolver getEntityResolver ()

返回当前的实体解析器。

Returns
EntityResolver The current entity resolver, or null if none has been registered.

getErrorHandler

Added in API level 1
ErrorHandler getErrorHandler ()

返回当前的错误处理程序。

Returns
ErrorHandler The current error handler, or null if none has been registered.

getFeature

Added in API level 1
boolean getFeature (String name)

查找功能标志的值。

功能名称是任何完全限定的URI。 XMLReader可能会识别功能名称,但暂时无法返回其值。 某些功能值只能在特定的上下文中使用,例如在解析之前,之中或之后。 此外,某些功能值可能无法通过编程访问。 (对于SAX1 Parser的适配器,没有独立于实现的方式来显示底层解析器是否执行验证,扩展外部实体等等。)

所有XMLReader都需要识别http://xml.org/sax/features/namespaces和http://xml.org/sax/features/namespace-prefixes功能名称。

典型的用法是这样的:

 XMLReader r = new MySAXDriver();

                         // try to activate validation
 try {
   r.setFeature("http://xml.org/sax/features/validation", true);
 } catch (SAXException e) {
   System.err.println("Cannot activate validation.");
 }

                         // register event handlers
 r.setContentHandler(new MyContentHandler());
 r.setErrorHandler(new MyErrorHandler());

                         // parse the first document
 try {
   r.parse("http://www.foo.com/mydoc.xml");
 } catch (IOException e) {
   System.err.println("I/O exception reading XML document");
 } catch (SAXException e) {
   System.err.println("XML exception reading document.");
 }
 

实现者可以免费(并鼓励)使用构建在他们自己的URI上的名称来创建自己的特性。

Parameters
name String: The feature name, which is a fully-qualified URI.
Returns
boolean The current value of the feature (true or false).
Throws
SAXNotRecognizedException
SAXNotSupportedException

getIndex

Added in API level 1
int getIndex (String qName)

通过XML限定(前缀)名称查找属性的索引。

Parameters
qName String: The qualified (prefixed) name.
Returns
int The index of the attribute, or -1 if it does not appear in the list.

getIndex

Added in API level 1
int getIndex (String uri, 
                String localName)

按名称空间名称查找属性的索引。

Parameters
uri String: The Namespace URI, or the empty string if the name has no Namespace URI.
localName String: The attribute's local name.
Returns
int The index of the attribute, or -1 if it does not appear in the list.

getLength

Added in API level 1
int getLength ()

返回列表中的属性数量。

Once you know the number of attributes, you can iterate through the list.

Returns
int The number of attributes in the list.

getLineNumber

Added in API level 1
int getLineNumber ()

返回当前文档事件结束的行号。 行由行结束符定义,这些行结束符在XML规范中定义。

警告:该方法的返回值仅用于诊断的近似值; 它并不打算提供足够的信息来编辑原始XML文档的字符内容。 在某些情况下,这些“行”号与显示为列的内容匹配,而在其他情况下,由于内部实体扩展,这些号可能与源文本不匹配。

返回值是触发事件的标记出现的文档实体或外部解析实体中的行号的近似值。

如果可能,SAX驱动程序应在与文档事件关联的文本之后提供第一个字符的行位置。 第一行是第一行。

Returns
int The line number, or -1 if none is available.

getLocalName

Added in API level 1
String getLocalName (int index)

通过索引查找属性的本地名称。

Parameters
index int: The attribute index (zero-based).
Returns
String The local name, or the empty string if Namespace processing is not being performed, or null if the index is out of range.

getProperty

Added in API level 1
Object getProperty (String name)

查找一个属性的值。

属性名称是任何完全限定的URI。 XMLReader可能会识别属性名称,但暂时无法返回其值。 某些属性值可能仅在特定上下文中可用,例如在解析之前,之中或之后。

XMLReaders不需要识别任何特定的属性名称,但是初始核心集合记录在SAX2中。

Implementors are free (and encouraged) to invent their own properties, using names built on their own URIs.

Parameters
name String: The property name, which is a fully-qualified URI.
Returns
Object The current value of the property.
Throws
SAXNotRecognizedException
SAXNotSupportedException

getPublicId

Added in API level 1
String getPublicId ()

返回当前文档事件的公共标识符。

返回值是文档实体或触发事件的标记出现的外部解析实体的公共标识符。

Returns
String A string containing the public identifier, or null if none is available.

getQName

Added in API level 1
String getQName (int index)

按索引查找属性的XML限定(前缀)名称。

Parameters
index int: The attribute index (zero-based).
Returns
String The XML qualified name, or the empty string if none is available, or null if the index is out of range.

getSystemId

Added in API level 1
String getSystemId ()

返回当前文档事件的系统标识符。

返回值是文档实体或触发事件的标记出现的外部解析实体的系统标识符。

如果系统标识符是URL,则解析器必须在将其传递给应用程序之前将其完全解析。 例如,一个文件名必须总是作为一个文件提供:... URL,其他类型的相对URI也将根据它们的基础进行解析。

Returns
String A string containing the system identifier, or null if none is available.

getType

Added in API level 1
String getType (int index)

按索引查找属性的类型。

属性类型是字符串“CDATA”,“ID”,“IDREF”,“IDREFS”,“NMTOKEN”,“NMTOKENS”,“ENTITY”,“ENTITIES”或“NOTATION”中的一个(始终为大写) 。

如果解析器没有读取属性声明,或者解析器没有报告属性类型,那么它必须按照XML 1.0建议书(第3.3.3节“属性值标准化”)中的规定返回值“CDATA” )。

对于不是符号的枚举属性,解析器将报告类型为“NMTOKEN”。

Parameters
index int: The attribute index (zero-based).
Returns
String The attribute's type as a string, or null if the index is out of range.

getType

Added in API level 1
String getType (String uri, 
                String localName)

按名称空间名称查找属性的类型。

有关可能的类型的说明,请参阅 getType(int)

Parameters
uri String: The Namespace URI, or the empty String if the name has no Namespace URI.
localName String: The local name of the attribute.
Returns
String The attribute type as a string, or null if the attribute is not in the list or if Namespace processing is not being performed.

getType

Added in API level 1
String getType (String qName)

按XML限定(前缀)名称查找属性的类型。

有关可能的类型的说明,请参阅 getType(int)

Parameters
qName String: The XML qualified name.
Returns
String The attribute type as a string, or null if the attribute is not in the list or if qualified names are not available.

getURI

Added in API level 1
String getURI (int index)

通过索引查找属性的名称空间URI。

Parameters
index int: The attribute index (zero-based).
Returns
String The Namespace URI, or the empty string if none is available, or null if the index is out of range.

getValue

Added in API level 1
String getValue (int index)

按索引查找属性值。

如果属性值是标记列表(IDREFS,ENTITIES或NMTOKENS),则令牌将连接成单个字符串,每个令牌由一个空格分隔。

Parameters
index int: The attribute index (zero-based).
Returns
String The attribute's value as a string, or null if the index is out of range.

getValue

Added in API level 1
String getValue (String qName)

按XML限定(前缀)名称查找属性的值。

有关可能值的说明,请参阅 getValue(int)

Parameters
qName String: The XML qualified name.
Returns
String The attribute value as a string, or null if the attribute is not in the list or if qualified names are not available.

getValue

Added in API level 1
String getValue (String uri, 
                String localName)

按名称空间名称查找属性值。

有关可能值的说明,请参阅 getValue(int)

Parameters
uri String: The Namespace URI, or the empty String if the name has no Namespace URI.
localName String: The local name of the attribute.
Returns
String The attribute value as a string, or null if the attribute is not in the list.

parse

Added in API level 1
void parse (String systemId)

从系统标识符(URI)解析XML文档。

此方法是从系统标识符中读取文档的常见情况的快捷方式。 这与以下内容完全相同:

 parse(new InputSource(systemId));
 

If the system identifier is a URL, it must be fully resolved by the application before it is passed to the parser.

Parameters
systemId String: The system identifier (URI).
Throws
SAXException
IOException

parse

Added in API level 1
void parse (InputSource source)

解析一个XML文档。

应用程序可以使用此方法来指示XML阅读器开始从任何有效的输入源(字符流,字节流或URI)解析XML文档。

应用程序可能不会在解析过程中调用此方法(它们应该为每个嵌套的XML文档创建一个新的XMLReader)。 解析完成后,应用程序可能会重用相同的XMLReader对象,可能会使用不同的输入源。 除非配置的该方面的定义明确指定了其他行为,否则XMLReader对象的配置(例如为功能标志和属性建立的处理程序绑定和值)不会改变。 (例如,特征标志或属性暴露了正在分析的文档的特征。)

在解析过程中,XMLReader将通过注册的事件处理程序提供有关XML文档的信息。

这种方法是同步的:直到解析结束才会返回。 如果客户端应用程序想要尽早终止解析,它应该抛出异常。

Parameters
source InputSource: The input source for the top-level of the XML document.
Throws
SAXException
IOException

parseSubTree

Added in API level 1
void parseSubTree (XmlPullParser pp)

Parameters
pp XmlPullParser
Throws
SAXException
IOException

setContentHandler

Added in API level 1
void setContentHandler (ContentHandler handler)

允许应用程序注册内容事件处理程序。

如果应用程序未注册内容处理程序,则SAX解析器报告的所有内容事件都将被忽略。

应用程序可以在解析中注册新的或不同的处理程序,并且SAX解析器必须立即开始使用新的处理程序。

Parameters
handler ContentHandler: The content handler.

setDTDHandler

Added in API level 1
void setDTDHandler (DTDHandler handler)

允许应用程序注册DTD事件处理程序。

如果应用程序未注册DTD处理程序,则SAX解析器报告的所有DTD事件都将被忽略。

应用程序可以在解析中注册新的或不同的处理程序,并且SAX解析器必须立即开始使用新的处理程序。

Parameters
handler DTDHandler: The DTD handler.

setEntityResolver

Added in API level 1
void setEntityResolver (EntityResolver resolver)

允许应用程序注册实体解析器。

如果应用程序未注册实体解析器,则XMLReader将执行其自己的默认解析。

应用程序可以在解析中注册一个新的或不同的解析器,并且SAX解析器必须立即开始使用新的解析器。

Parameters
resolver EntityResolver: The entity resolver.

setErrorHandler

Added in API level 1
void setErrorHandler (ErrorHandler handler)

允许应用程序注册错误事件处理程序。

如果应用程序没有注册错误处理程序,则SAX解析器报告的所有错误事件将被忽略; 但是,正常的处理可能不会继续。 强烈建议所有SAX应用程序实施错误处理程序以避免意外的错误。

应用程序可以在解析中注册新的或不同的处理程序,并且SAX解析器必须立即开始使用新的处理程序。

Parameters
handler ErrorHandler: The error handler.

setFeature

Added in API level 1
void setFeature (String name, 
                boolean value)

设置功能标志的值。

功能名称是任何完全限定的URI。 XMLReader可能公开一个特征值,但无法更改当前值。 某些特征值只能在特定上下文中不可变或可变,例如在解析之前,之中或之后。

All XMLReaders are required to support setting http://xml.org/sax/features/namespaces to true and http://xml.org/sax/features/namespace-prefixes to false.

Parameters
name String: The feature name, which is a fully-qualified URI.
value boolean: The requested value of the feature (true or false).
Throws
SAXNotRecognizedException
SAXNotSupportedException

setProperty

Added in API level 1
void setProperty (String name, 
                Object value)

设置属性的值。

属性名称是任何完全限定的URI。 XMLReader可能会识别属性名称,但无法更改当前值。 某些属性值只有在特定的上下文中才可以是不可变的或可变的,例如在解析之前,之中或之后。

XMLReaders不需要识别设置任何特定的属性名称,但核心集由SAX2定义。

该方法也是设置扩展处理程序的标准机制。

Parameters
name String: The property name, which is a fully-qualified URI.
value Object: The requested value for the property.
Throws
SAXNotRecognizedException
SAXNotSupportedException

Protected methods

startElement

Added in API level 1
void startElement (String namespace, 
                String localName, 
                String qName)

呼吁startElementContentHandlerthis驱动程序对象为Attributes的实现。 在默认实现Attributes对象仅在此方法调用期间有效并且可能不存储。 子类可以覆盖此方法来缓存属性。

Parameters
namespace String
localName String
qName String
Throws
SAXException

Hooray!