- 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
-
-
构造方法摘要
构造方法 变量 构造器 描述 protected
SAXParser()
受保护的构造函数以防止实例化。
-
方法摘要
所有方法 实例方法 抽象方法 具体的方法 变量和类型 方法 描述 abstract Parser
getParser()
返回由此类的实现封装的SAX解析器。abstract Object
getProperty(String name)
返回XMLReader
的底层实现中请求的特定属性。Schema
getSchema()
获取对XML处理器使用的Schema
的引用。abstract XMLReader
getXMLReader()
返回由此类的实现封装的XMLReader
。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)
使用指定的HandlerBase
将给定InputSource
的内容解析为XML。void
parse(InputSource is, DefaultHandler dh)
使用指定的DefaultHandler
将给定InputSource
的内容解析为XML。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
从而节省与创建新SAXParser
相关的资源。复位
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版本,因为在SAX 2.0中不推荐使用HandlerBase类 。- 参数
-
is
- 包含要解析的内容的InputStream。 -
hb
- 要使用的SAX HandlerBase。 - 异常
-
IllegalArgumentException
- 如果给定的InputStream为null。 -
SAXException
- 如果解析产生SAX错误。 -
IOException
- 如果发生与InputStream
交互的IO错误。 - 另请参见:
-
DocumentHandler
-
parse
public void parse(InputStream is, HandlerBase hb, String systemId) throws SAXException, IOException
使用指定的
HandlerBase
将给定InputStream
实例的内容解析为XML。 建议使用此方法的DefaultHandler版本,因为在SAX 2.0中不推荐使用HandlerBase类 。- 参数
-
is
- 包含要解析的内容的InputStream。 -
hb
- 要使用的SAX HandlerBase。 -
systemId
- 解析相对URI所需的systemId。 - 异常
-
IllegalArgumentException
- 如果给定的InputStream
是null
。 -
IOException
- 如果发生与InputStream
交互的任何IO错误。 -
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为null。 -
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为null。 -
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为null。 -
IOException
- 如果发生任何IO错误。 -
SAXException
- 如果在处理期间发生任何SAX错误。 - 另请参见:
-
DocumentHandler
-
parse
public void parse(File f, HandlerBase hb) throws SAXException, IOException
使用指定的HandlerBase
解析指定为XML的文件的内容。 建议使用此方法的DefaultHandler版本,因为在SAX 2.0中不推荐使用HandlerBase类- 参数
-
f
- 包含要解析的XML的文件 -
hb
- 要使用的SAX HandlerBase。 - 异常
-
IllegalArgumentException
- 如果File对象为null。 -
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对象为null。 -
IOException
- 如果发生任何IO错误。 -
SAXException
- 如果在处理期间发生任何SAX错误。 - 另请参见:
-
DocumentHandler
-
parse
public void parse(InputSource is, HandlerBase hb) throws SAXException, IOException
使用指定的HandlerBase
将给定InputSource
的内容解析为XML。 建议使用此方法的DefaultHandler版本,因为在SAX 2.0中不推荐使用HandlerBase类- 参数
-
is
- 包含要解析的内容的InputSource。 -
hb
- 要使用的SAX HandlerBase。 - 异常
-
IllegalArgumentException
- 如果InputSource
对象是null
。 -
IOException
- 如果发生任何IO错误。 -
SAXException
- 如果在处理期间发生任何SAX错误。 - 另请参见:
-
DocumentHandler
-
parse
public void parse(InputSource is, DefaultHandler dh) throws SAXException, IOException
使用指定的DefaultHandler
将给定为InputSource
的内容解析为XML。- 参数
-
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
。- 结果
- 由此类的实现封装的XMLReader。
- 异常
-
SAXException
- 如果在处理期间发生任何SAX错误。
-
isNamespaceAware
public abstract boolean isNamespaceAware()
指示此解析器是否配置为了解命名空间。- 结果
- 如果此解析器配置为了解名称空间,则为true; 否则是假的。
-
isValidating
public abstract boolean isValidating()
指示此解析器是否配置为验证XML文档。- 结果
- 如果此解析器配置为验证XML文档,则为true;否则为false。 否则是假的。
-
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的访问,外部实体引用属性指定的协议。 如果由于此属性的限制而在解析期间拒绝访问,则5128677136705将定义的解析方法将抛出SAXException
。设置
XMLConstants.ACCESS_EXTERNAL_SCHEMA
字段会将 schemaLocation属性设置的外部Schema访问限制为属性指定的协议。 如果由于此属性的限制而在解析期间拒绝访问,则SAXParser
定义的解析方法将抛出SAXException
。
- 参数
-
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)
-
-