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)