- java.lang.Object
-
- javax.xml.parsers.SAXParser
-
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实现在这个修改的类下工作。- 从以下版本开始:
- 1.4
-
-
构造方法摘要
构造方法 Modifier Constructor 描述 protected
SAXParser()
受保护的构造函数以防止实例化。
-
方法摘要
所有方法 接口方法 抽象方法 具体的方法 Modifier and Type 方法 描述 abstract Parser
getParser()
返回由该类实现封装的SAX解析器。abstract Object
getProperty(String name)
返回底层实现中请求的特定属性XMLReader
。Schema
getSchema()
参考XML处理器使用的Schema
。abstract XMLReader
getXMLReader()
abstract boolean
isNamespaceAware()
指示此解析器是否配置为了解命名空间。abstract boolean
isValidating()
指示此解析器是否配置为验证XML文档。boolean
isXIncludeAware()
获取此解析器的XInclude处理模式。void
parse(File f, HandlerBase hb)
使用指定的HandlerBase
解析指定为XML的文件的内容。void
parse(File f, DefaultHandler dh)
使用指定的DefaultHandler
解析指定为XML的文件的内容。void
parse(InputStream is, HandlerBase hb)
使用指定的HandlerBase
将给定的InputStream
实例的内容解析为XML。void
parse(InputStream is, HandlerBase hb, String systemId)
使用指定的HandlerBase
将给定的InputStream
实例的内容解析为XML。void
parse(InputStream is, DefaultHandler dh)
使用指定的DefaultHandler
将给定的InputStream
实例的内容解析为XML。void
parse(InputStream is, DefaultHandler dh, String systemId)
使用指定的DefaultHandler
将给定的InputStream
实例的内容解析为XML。void
parse(String uri, HandlerBase hb)
使用指定的HandlerBase
解析使用给定统一资源标识符(URI)作为XML描述的内容。void
parse(String uri, DefaultHandler dh)
使用指定的DefaultHandler
解析由给予统一资源标识符(URI)作为XML描述的内容。void
parse(InputSource is, HandlerBase hb)
解析给出的内容InputSource
使用指定为XMLHandlerBase
。void
parse(InputSource is, DefaultHandler dh)
解析给出的内容InputSource
使用指定为XMLDefaultHandler
。void
reset()
将此SAXParser
重置为原始配置。abstract void
setProperty(String name, Object value)
设置底层实现中的特定属性为XMLReader
。
-
-
-
构造方法详细信息
-
SAXParser
protected SAXParser()
受保护的构造函数以防止实例化。 使用
SAXParserFactory.newSAXParser()
。
-
-
方法详细信息
-
reset
public void reset()
将此
SAXParser
重置为原始配置。SAXParser
被重置为与使用SAXParserFactory.newSAXParser()
创建的状态相同的状态。reset()
旨在允许现有的SAXParser
s的重用,从而节省与新的SAXParser
s的创建相关的资源。复位
SAXParser
不能保证具有相同的Schema
Object
,例如Object.equals(Object obj)
。 保证功能相当于Schema
。- 异常
-
UnsupportedOperationException
- 当实现不覆盖此方法时 - 从以下版本开始:
- 1.5
-
parse
public void parse(InputStream is, HandlerBase hb) throws SAXException, IOException
使用指定的
HandlerBase
将给定的InputStream
实例的内容解析为XML。 推荐使用DefaultHandler版本的此方法,因为HandlerBase类已在SAX 2.0中弃用 。- 参数
-
is
- 包含要解析的内容的InputStream。 -
hb
- 要使用的SAX HandlerBase。 - 异常
-
IllegalArgumentException
- 如果给定的InputStream为空。 -
SAXException
- 如果解析产生SAX错误。 -
IOException
- 如果与InputStream
交互时出现IO错误。 - 另请参见:
-
DocumentHandler
-
parse
public void parse(InputStream is, HandlerBase hb, String systemId) throws SAXException, IOException
使用指定的
HandlerBase
将给定的InputStream
实例的内容解析为XML。 推荐使用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.
-
parse
public void parse(InputStream is, DefaultHandler dh) throws SAXException, IOException
使用指定的DefaultHandler
将给定的InputStream
实例的内容解析为XML。- 参数
-
is
- 包含要解析的内容的InputStream。 -
dh
- 要使用的SAX DefaultHandler。 - 异常
-
IllegalArgumentException
- 如果给定的InputStream为null。 -
IOException
- 如果发生任何IO错误。 -
SAXException
- 如果在处理过程中发生任何SAX错误。 - 另请参见:
-
DocumentHandler
-
parse
public void parse(InputStream is, DefaultHandler dh, String systemId) throws SAXException, IOException
使用指定的DefaultHandler
将给定的InputStream
实例的内容解析为XML。- 参数
-
is
- 包含要解析的内容的InputStream。 -
dh
- 要使用的SAX DefaultHandler。 -
systemId
- 解析相对URI所需的systemId。 - 异常
-
IllegalArgumentException
- 如果给定的InputStream为空。 -
IOException
- 如果发生任何IO错误。 -
SAXException
- 如果在处理过程中发生任何SAX错误。 - 另请参见:
-
version of this method instead.
-
parse
public void parse(String uri, HandlerBase hb) throws SAXException, IOException
使用指定的HandlerBase
解析给出使用统一资源标识符(URI)作为XML的内容 。 推荐使用DefaultHandler版本的此方法,因为在SAX 2.0中已经弃用了HandlerBase
类- 参数
-
uri
- 要解析的内容的位置。 -
hb
- 要使用的SAX HandlerBase。 - 异常
-
IllegalArgumentException
- 如果uri为空。 -
IOException
- 如果发生任何IO错误。 -
SAXException
- 如果在处理过程中发生任何SAX错误。 - 另请参见:
-
DocumentHandler
-
parse
public void parse(String uri, DefaultHandler dh) throws SAXException, IOException
使用指定的DefaultHandler
解析给出使用统一资源标识符(URI)作为XML的内容 。- 参数
-
uri
- 要解析的内容的位置。 -
dh
- 要使用的SAX DefaultHandler。 - 异常
-
IllegalArgumentException
- 如果uri为空。 -
IOException
- 如果发生任何IO错误。 -
SAXException
- 如果在处理过程中发生任何SAX错误。 - 另请参见:
-
DocumentHandler
-
parse
public void parse(File f, HandlerBase hb) throws SAXException, IOException
使用指定的HandlerBase
解析指定为XML的文件的内容。 建议使用DefaultHandler版本的此方法,因为HandlerBase类已在SAX 2.0中弃用- 参数
-
f
- 包含要解析的XML的文件 -
hb
- 要使用的SAX HandlerBase。 - 异常
-
IllegalArgumentException
- 如果File对象为空。 -
IOException
- 如果发生任何IO错误。 -
SAXException
- 如果在处理过程中发生任何SAX错误。 - 另请参见:
-
DocumentHandler
-
parse
public void parse(File f, DefaultHandler dh) throws SAXException, IOException
使用指定的DefaultHandler
解析指定为XML的文件的内容。- 参数
-
f
- 包含要解析的XML的文件 -
dh
- 要使用的SAX DefaultHandler。 - 异常
-
IllegalArgumentException
- 如果File对象为空。 -
IOException
- 如果发生任何IO错误。 -
SAXException
- 如果在处理过程中发生任何SAX错误。 - 另请参见:
-
DocumentHandler
-
parse
public void parse(InputSource is, HandlerBase hb) throws SAXException, IOException
解析给出的内容InputSource
使用指定为XMLHandlerBase
。 建议使用DefaultHandler版本的此方法,因为HandlerBase类已在SAX 2.0中弃用- 参数
-
is
- 包含要解析的内容的InputSource。 -
hb
- 要使用的SAX HandlerBase。 - 异常
-
IllegalArgumentException
- 如果InputSource
对象是null
。 -
IOException
- 如果发生任何IO错误。 -
SAXException
- 如果在处理过程中发生任何SAX错误。 - 另请参见:
-
DocumentHandler
-
parse
public void parse(InputSource is, DefaultHandler dh) throws SAXException, IOException
解析给出的内容InputSource
使用指定为XMLDefaultHandler
。- 参数
-
is
- 包含要解析的内容的InputSource。 -
dh
- 要使用的SAX DefaultHandler。 - 异常
-
IllegalArgumentException
- 如果InputSource
对象是null
。 -
IOException
- 如果发生任何IO错误。 -
SAXException
- 如果在处理过程中发生任何SAX错误。 - 另请参见:
-
DocumentHandler
-
getParser
public abstract Parser getParser() throws SAXException
返回由该类实现封装的SAX解析器。- 结果
- 由该类实现封装的SAX解析器。
- 异常
-
SAXException
- 如果在处理过程中发生任何SAX错误。
-
getXMLReader
public abstract XMLReader getXMLReader() throws SAXException
- 结果
- 由该类实现封装的XMLReader。
- 异常
-
SAXException
- 如果在处理过程中发生任何SAX错误。
-
isNamespaceAware
public abstract boolean isNamespaceAware()
指示此解析器是否配置为了解命名空间。- 结果
- 如果此解析器配置为了解命名空间,则为true; 否则为假。
-
isValidating
public abstract boolean isValidating()
指示此解析器是否配置为验证XML文档。- 结果
- 如果此解析器配置为验证XML文档,则为true; 否则为假。
-
setProperty
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
定义的解析方法抛出SAXException
。设置
XMLConstants.ACCESS_EXTERNAL_SCHEMA
属性将对schemaLocation属性设置的外部模式的访问限制为属性指定的协议。 如果访问被解析,由于该属性的限制时否认,SAXException
将由定义的解析方法抛出SAXParser
。
- 参数
-
name
- 要设置的属性的名称。 -
value
- 要设置的属性的值。 - 异常
-
SAXNotRecognizedException
- 底层XMLReader无法识别属性名称时。 -
SAXNotSupportedException
- 底层XMLReader识别属性名称但不支持该属性时。 - 另请参见:
-
XMLReader.setProperty(java.lang.String, java.lang.Object)
-
getProperty
public abstract Object getProperty(String name) throws SAXNotRecognizedException, SAXNotSupportedException
返回底层实现中请求的特定属性
XMLReader
。- 参数
-
name
- 要检索的属性的名称。 - 结果
- 请求的财产的价值。
- 异常
-
SAXNotRecognizedException
- 底层XMLReader无法识别属性名称时。 -
SAXNotSupportedException
- 底层XMLReader识别属性名称但不支持该属性时。 - 另请参见:
-
XMLReader.getProperty(java.lang.String)
-
getSchema
public Schema getSchema()
参考由XML处理器使用的
Schema
。如果没有使用模式,则返回
null
。- 结果
-
Schema
被使用或null
,如果没有在使用 - 异常
-
UnsupportedOperationException
- 实现时不覆盖此方法 - 从以下版本开始:
- 1.5
-
isXIncludeAware
public boolean isXIncludeAware()
获取此解析器的XInclude处理模式。
- 结果
-
当这个解析器从工厂创建时,返回值为
SAXParserFactory.isXIncludeAware()
。 - 异常
-
UnsupportedOperationException
- 当实现不覆盖此方法时 - 从以下版本开始:
- 1.5
- 另请参见:
-
SAXParserFactory.setXIncludeAware(boolean)
-
-