public abstract class SAXParser extends Object
XMLReader实现类的API。
在JAXP 1.0,此类包装Parser接口,但是此接口由替换XMLReader 。
为了方便转换,此类继续支持相同的名称和界面以及支持新方法。
该类的一个实例可以从SAXParserFactory.newSAXParser()方法获得。
一旦获得此类的实例,可以从各种输入源解析XML。
这些输入源是InputStreams,Files,URL和SAX InputSources。
此静态方法将基于系统属性设置创建新的工厂实例,如果未定义属性,则使用平台默认值。
控制要创建哪个Factory实现的系统属性命名为"javax.xml.parsers.SAXParserFactory" 。 该属性命名一个类,该类是该抽象类的具体子类。 如果没有定义属性,将使用一个平台默认值。
HandlerBase或DefaultHandler的方法。
这个包含底层实现的类的实现者可以考虑使用ParserAdapter类来初始调整其SAX1实现在此修订类下工作。
| Modifier | Constructor and Description |
|---|---|
protected |
SAXParser()
受保护的构造函数,以防止启动。
|
| Modifier and Type | Method and Description |
|---|---|
abstract Parser |
getParser()
返回由该类实现封装的SAX解析器。
|
abstract Object |
getProperty(String name)
返回 XMLReader的底层实现中请求的特定属性 。
|
Schema |
getSchema()
获取到的基准 Schema正在使用的XML处理器。
|
abstract XMLReader |
getXMLReader()
返回由该类实现封装的 XMLReader。
|
abstract boolean |
isNamespaceAware()
指示此解析器是否配置为了解命名空间。
|
abstract boolean |
isValidating()
指示此解析器是否配置为验证XML文档。
|
boolean |
isXIncludeAware()
获取此解析器的XInclude处理模式。
|
void |
parse(File f, DefaultHandler dh)
解析使用指定的指定XML文件的内容 DefaultHandler 。
|
void |
parse(File f, HandlerBase hb)
解析使用指定的指定XML文件的内容 HandlerBase 。
|
void |
parse(InputSource is, DefaultHandler dh)
解析给出的内容 InputSource使用指定为XML DefaultHandler 。
|
void |
parse(InputSource is, HandlerBase hb)
解析给出的内容 InputSource使用指定为XML HandlerBase 。
|
void |
parse(InputStream is, DefaultHandler dh)
解析给定的内容 InputStream使用指定的实例作为XML DefaultHandler 。
|
void |
parse(InputStream is, DefaultHandler dh, String systemId)
解析给定的内容 InputStream使用指定的实例作为XML DefaultHandler 。
|
void |
parse(InputStream is, HandlerBase hb)
解析给定的内容 InputStream使用指定的实例作为XML HandlerBase 。
|
void |
parse(InputStream is, HandlerBase hb, String systemId)
解析给定的内容 InputStream使用指定的实例作为XML HandlerBase 。
|
void |
parse(String uri, DefaultHandler dh)
使用指定的 DefaultHandler解析使用给定统一资源标识符(URI)作为XML描述的内容 。
|
void |
parse(String uri, HandlerBase hb)
使用指定的 HandlerBase解析使用给定统一资源标识符(URI)作为XML描述的内容 。
|
void |
reset()
将此
SAXParser重置为其原始配置。
|
abstract void |
setProperty(String name, Object value)
设置基础实现中的特定属性 XMLReader 。
|
protected SAXParser()
受保护的构造函数,以防止启动。 使用SAXParserFactory.newSAXParser() 。
public void reset()
将此SAXParser重置为原始配置。
SAXParser被重置为与使用SAXParserFactory.newSAXParser()创建时相同的状态。 reset()旨在允许现有的SAXParser s的重用,从而节省与创建新的SAXParser s相关的资源。
复位SAXParser不能保证有相同的Schema Object ,例如Object.equals(Object obj) 。 保证在功能上等于Schema 。
UnsupportedOperationException - 当实现不覆盖此方法
public void parse(InputStream is, HandlerBase hb) throws SAXException, IOException
解析给定的内容InputStream使用指定的实例作为XML HandlerBase 。 建议使用DefaultHandler版本的此方法,因为HandlerBase类已在SAX 2.0中弃用 。
is - 包含要解析的内容的InputStream。
hb - 要使用的SAX HandlerBase。
IllegalArgumentException - 如果给定的InputStream为空。
SAXException - 如果解析产生SAX错误。
IOException - 如果IO错误发生与
InputStream 。
DocumentHandler
public void parse(InputStream is, HandlerBase hb, String systemId) throws SAXException, IOException
解析给定的内容InputStream使用指定的实例作为XML HandlerBase 。 建议使用DefaultHandler版本的此方法,因为HandlerBase类已在SAX 2.0中弃用 。
is - 包含要解析的内容的InputStream。
hb - 要使用的SAX HandlerBase。
systemId - 解析相对URI所需的systemId。
IllegalArgumentException - 如果给定的
InputStream是
null 。
IOException - 如果任何IO错误发生与
InputStream 。
SAXException - 如果在处理过程中发生任何SAX错误。
version of this method instead.
public void parse(InputStream is, DefaultHandler dh) throws SAXException, IOException
InputStream使用指定的实例作为XML DefaultHandler 。
is - 包含要解析的内容的InputStream。
dh - 要使用的SAX DefaultHandler。
IllegalArgumentException - 如果给定的InputStream为null。
IOException - 如果发生任何IO错误。
SAXException - 如果在处理过程中发生任何SAX错误。
DocumentHandler
public void parse(InputStream is, DefaultHandler dh, String systemId) throws SAXException, IOException
InputStream使用指定的实例作为XML DefaultHandler 。
is - 包含要解析的内容的InputStream。
dh - 要使用的SAX DefaultHandler。
systemId - 解析相对URI所需的systemId。
IllegalArgumentException - 如果给定的InputStream为空。
IOException - 如果发生任何IO错误。
SAXException - 如果在处理过程中发生任何SAX错误。
version of this method instead.
public void parse(String uri, HandlerBase hb) throws SAXException, IOException
HandlerBase解析使用给定统一资源标识符(URI)作为XML描述的内容 。
推荐使用DefaultHandler版本的此方法,因为HandlerBase类已在SAX 2.0中弃用
uri - 要解析的内容的位置。
hb - 要使用的SAX HandlerBase。
IllegalArgumentException - 如果uri为空。
IOException - 如果发生任何IO错误。
SAXException - 如果在处理过程中发生任何SAX错误。
DocumentHandler
public void parse(String uri, DefaultHandler dh) throws SAXException, IOException
DefaultHandler解析使用给定统一资源标识符(URI)作为XML描述的内容 。
uri - 要解析的内容的位置。
dh - 要使用的SAX DefaultHandler。
IllegalArgumentException - 如果uri为空。
IOException - 如果发生任何IO错误。
SAXException - 如果在处理过程中发生任何SAX错误。
DocumentHandler
public void parse(File f, HandlerBase hb) throws SAXException, IOException
HandlerBase 。
建议使用DefaultHandler版本的此方法,因为HandlerBase类已在SAX 2.0中弃用
f - 包含要解析的XML的文件
hb - 要使用的SAX HandlerBase。
IllegalArgumentException - 如果File对象为空。
IOException - 如果发生任何IO错误。
SAXException - 如果在处理过程中发生任何SAX错误。
DocumentHandler
public void parse(File f, DefaultHandler dh) throws SAXException, IOException
DefaultHandler 。
f - 包含要解析的XML的文件
dh - 要使用的SAX DefaultHandler。
IllegalArgumentException - 如果File对象为空。
IOException - 如果发生任何IO错误。
SAXException - 如果在处理过程中发生任何SAX错误。
DocumentHandler
public void parse(InputSource is, HandlerBase hb) throws SAXException, IOException
HandlerBase将作为XML的内容解析为InputSource 。
建议使用DefaultHandler版本的此方法,因为HandlerBase类已在SAX 2.0中弃用
is - 包含要解析的内容的InputSource。
hb - 要使用的SAX HandlerBase。
IllegalArgumentException - 如果
InputSource对象是
null 。
IOException - 如果发生任何IO错误。
SAXException - 如果在处理过程中发生任何SAX错误。
DocumentHandler
public void parse(InputSource is, DefaultHandler dh) throws SAXException, IOException
InputSource使用指定为XML DefaultHandler 。
is - 包含要解析的内容的InputSource。
dh - 要使用的SAX DefaultHandler。
IllegalArgumentException - 如果
InputSource对象是
null 。
IOException - 如果发生任何IO错误。
SAXException - 如果在处理过程中发生任何SAX错误。
DocumentHandler
public abstract Parser getParser() throws SAXException
SAXException - 如果在处理过程中发生任何SAX错误。
public abstract XMLReader getXMLReader() throws SAXException
XMLReader。
SAXException - 如果在处理过程中发生任何SAX错误。
public abstract boolean isNamespaceAware()
public abstract boolean isValidating()
public abstract void setProperty(String name, Object value) throws SAXNotRecognizedException, SAXNotSupportedException
设置基础实现中的特定属性XMLReader 。 核心功能和属性的列表可以在http://sax.sourceforge.net/?selected=get-set找到。
实现JAXP 1.5或更高版本的所有实现都需要支持XMLConstants.ACCESS_EXTERNAL_DTD和XMLConstants.ACCESS_EXTERNAL_SCHEMA属性。
设置XMLConstants.ACCESS_EXTERNAL_DTD属性限制对外部DTD的访问,外部实体引用属性指定的协议。 如果由于此属性的限制,在解析期间访问被拒绝, SAXException将被SAXParser定义的解析方法抛出。
设置XMLConstants.ACCESS_EXTERNAL_SCHEMA属性将对schemaLocation属性设置的外部模式的访问限制为属性指定的协议。 如果访问被解析,由于该属性的限制时否认, SAXException将由定义的解析方法抛出SAXParser 。
name - 要设置的属性的名称。
value - 要设置的属性的值。
SAXNotRecognizedException - 底层XMLReader无法识别属性名称时。
SAXNotSupportedException - 底层XMLReader识别属性名称但不支持该属性时。
XMLReader.setProperty(java.lang.String, java.lang.Object)
public abstract Object getProperty(String name) throws SAXNotRecognizedException, SAXNotSupportedException
返回XMLReader的底层实现中请求的特定属性 。
name - 要检索的属性的名称。
SAXNotRecognizedException - 底层XMLReader无法识别属性名称时。
SAXNotSupportedException - 底层XMLReader识别属性名称但不支持该属性时。
XMLReader.getProperty(java.lang.String)
public Schema getSchema()
获取到的基准Schema正在使用的XML处理器。
如果没有使用模式,则返回null 。
Schema正在使用或null如果没有使用
UnsupportedOperationException - 实现时不覆盖此方法
public boolean isXIncludeAware()
获取此解析器的XInclude处理模式。
SAXParserFactory.isXIncludeAware() 。
UnsupportedOperationException - 当实现不覆盖此方法时
SAXParserFactory.setXIncludeAware(boolean)
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.