- 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 描述 protectedSAXParser()受保护的构造函数以防止实例化。
-
方法摘要
所有方法 接口方法 抽象方法 具体的方法 Modifier and Type 方法 描述 abstract ParsergetParser()返回由该类实现封装的SAX解析器。abstract ObjectgetProperty(String name)返回底层实现中请求的特定属性XMLReader。SchemagetSchema()参考XML处理器使用的Schema。abstract XMLReadergetXMLReader()abstract booleanisNamespaceAware()指示此解析器是否配置为了解命名空间。abstract booleanisValidating()指示此解析器是否配置为验证XML文档。booleanisXIncludeAware()获取此解析器的XInclude处理模式。voidparse(File f, HandlerBase hb)使用指定的HandlerBase解析指定为XML的文件的内容。voidparse(File f, DefaultHandler dh)使用指定的DefaultHandler解析指定为XML的文件的内容。voidparse(InputStream is, HandlerBase hb)使用指定的HandlerBase将给定的InputStream实例的内容解析为XML。voidparse(InputStream is, HandlerBase hb, String systemId)使用指定的HandlerBase将给定的InputStream实例的内容解析为XML。voidparse(InputStream is, DefaultHandler dh)使用指定的DefaultHandler将给定的InputStream实例的内容解析为XML。voidparse(InputStream is, DefaultHandler dh, String systemId)使用指定的DefaultHandler将给定的InputStream实例的内容解析为XML。voidparse(String uri, HandlerBase hb)使用指定的HandlerBase解析使用给定统一资源标识符(URI)作为XML描述的内容。voidparse(String uri, DefaultHandler dh)使用指定的DefaultHandler解析由给予统一资源标识符(URI)作为XML描述的内容。voidparse(InputSource is, HandlerBase hb)解析给出的内容InputSource使用指定为XMLHandlerBase。voidparse(InputSource is, DefaultHandler dh)解析给出的内容InputSource使用指定为XMLDefaultHandler。voidreset()将此SAXParser重置为原始配置。abstract voidsetProperty(String name, Object value)设置底层实现中的特定属性为XMLReader。
-
-
-
构造方法详细信息
-
SAXParser
protected SAXParser()
受保护的构造函数以防止实例化。 使用
SAXParserFactory.newSAXParser()。
-
-
方法详细信息
-
reset
public void reset()
将此
SAXParser重置为原始配置。SAXParser被重置为与使用SAXParserFactory.newSAXParser()创建的状态相同的状态。reset()旨在允许现有的SAXParsers的重用,从而节省与新的SAXParsers的创建相关的资源。复位
SAXParser不能保证具有相同的SchemaObject,例如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)
-
-