XMLReader实现类的API。在JAXP 1.0中,这个类包装了Parser接口,然而这个接口被XMLReader所取代。为了方便过渡,这个类继续支持相同的名称和接口,并支持新的方法。可以通过SAXParserFactory.newSAXParser()方法获取此类的实例。一旦获取了此类的实例,就可以从各种输入源解析XML。这些输入源包括InputStreams、Files、URLs和SAX InputSources。
这个静态方法根据系统属性设置创建一个新的工厂实例,如果没有定义属性,则使用平台默认值。
控制要创建的Factory实现的系统属性名为"javax.xml.parsers.SAXParserFactory"。此属性命名一个是这个抽象类的具体子类的类。如果未定义属性,则将使用平台默认值。
HandlerBase或DefaultHandler的方法。
包装底层实现的此类的实现者可以考虑使用ParserAdapter类来最初适配他们的SAX1实现以在这个修订后的类下工作。
- 自版本:
- 1.4
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionabstract Parser返回由此类实现封装的SAX解析器。abstract ObjectgetProperty(String name) 返回底层实现中XMLReader请求的特定属性。获取XML处理器正在使用的Schema的引用。abstract XMLReader返回由此类实现封装的XMLReader。abstract boolean指示此解析器是否配置为理解命名空间。abstract boolean指示此解析器是否配置为验证XML文档。boolean获取此解析器的XInclude处理模式。voidparse(File f, HandlerBase hb) 使用指定的HandlerBase解析指定为XML的文件内容。voidparse(File f, DefaultHandler dh) 使用指定的DefaultHandler解析指定为XML的文件内容。voidparse(InputStream is, HandlerBase hb) 使用指定的InputStream实例的内容作为XML,使用指定的HandlerBase解析。voidparse(InputStream is, HandlerBase hb, String systemId) 使用指定的InputStream实例的内容作为XML,使用指定的HandlerBase解析。voidparse(InputStream is, DefaultHandler dh) 使用指定的InputStream实例的内容作为XML,使用指定的DefaultHandler解析。voidparse(InputStream is, DefaultHandler dh, String systemId) 使用指定的InputStream实例的内容作为XML,使用指定的DefaultHandler解析。voidparse(String uri, HandlerBase hb) 使用给定的统一资源标识符(URI)描述的内容作为XML,使用指定的HandlerBase解析。voidparse(String uri, DefaultHandler dh) 使用给定的统一资源标识符(URI)描述的内容作为XML,使用指定的DefaultHandler解析。voidparse(InputSource is, HandlerBase hb) 使用给定的InputSource的内容作为XML,使用指定的HandlerBase解析。voidparse(InputSource is, DefaultHandler dh) 使用给定的InputSource的内容作为XML,使用指定的DefaultHandler解析。voidreset()将此SAXParser重置为其原始配置。abstract voidsetProperty(String name, Object value) 在底层实现中设置特定属性XMLReader。
-
Constructor Details
-
SAXParser
protected SAXParser()保护构造函数,防止实例化。使用
SAXParserFactory.newSAXParser()。
-
-
Method Details
-
reset
public void reset()将此
SAXParser重置为其原始配置。SAXParser被重置为使用SAXParserFactory.newSAXParser()创建时的相同状态。reset()旨在允许重用现有的SAXParser,从而节省与创建新SAXParser相关的资源。重置的
SAXParser不能保证具有相同的SchemaObject,例如Object.equals(Object obj)。它保证具有功能上相等的Schema。- 抛出:
-
UnsupportedOperationException- 当实现未覆盖此方法时 - 自版本:
- 1.5
-
parse
使用指定的
InputStream实例的内容作为XML,使用指定的HandlerBase解析。建议使用此方法的DefaultHandler版本,因为HandlerBase类在SAX 2.0中已被弃用。- 参数:
-
is- 包含要解析的内容的InputStream。 -
hb- 要使用的SAX HandlerBase。 - 抛出:
-
IllegalArgumentException- 如果给定的InputStream为null。 -
SAXException- 如果解析产生SAX错误。 -
IOException- 如果与InputStream交互时发生IO错误。 - 参见:
-
parse
使用指定的
InputStream实例的内容作为XML,使用指定的HandlerBase解析。建议使用此方法的DefaultHandler版本,因为HandlerBase类在SAX 2.0中已被弃用。- 参数:
-
is- 包含要解析的内容的InputStream。 -
hb- 要使用的SAX HandlerBase。 -
systemId- 用于解析相对URI的systemId。 - 抛出:
-
IllegalArgumentException- 如果给定的InputStream为null。 -
IOException- 如果与InputStream交互时发生任何IO错误。 -
SAXException- 如果在处理过程中发生任何SAX错误。 - 参见:
-
parse
使用指定的InputStream实例的内容作为XML,使用指定的DefaultHandler解析。- 参数:
-
is- 包含要解析的内容的InputStream。 -
dh- 要使用的SAX DefaultHandler。 - 抛出:
-
IllegalArgumentException- 如果给定的InputStream为null。 -
IOException- 如果发生任何IO错误。 -
SAXException- 如果在处理过程中发生任何SAX错误。 - 参见:
-
parse
public void parse(InputStream is, DefaultHandler dh, String systemId) throws SAXException, IOException 解析给定的InputStream实例中的内容,使用指定的DefaultHandler。- 参数:
-
is- 包含要解析内容的InputStream。 -
dh- 要使用的SAX DefaultHandler。 -
systemId- 用于解析相对URI的systemId。 - 抛出:
-
IllegalArgumentException- 如果给定的InputStream为null。 -
IOException- 如果发生任何IO错误。 -
SAXException- 如果在处理过程中发生任何SAX错误。 - 参见:
-
parse
使用指定的HandlerBase解析由给定统一资源标识符(URI)描述的内容作为XML。推荐使用此方法的DefaultHandler版本,因为HandlerBase类在SAX 2.0中已被弃用- 参数:
-
uri- 要解析内容的位置。 -
hb- 要使用的SAX HandlerBase。 - 抛出:
-
IllegalArgumentException- 如果uri为null。 -
IOException- 如果发生任何IO错误。 -
SAXException- 如果在处理过程中发生任何SAX错误。 - 参见:
-
parse
使用指定的DefaultHandler解析由给定统一资源标识符(URI)描述的内容作为XML。- 参数:
-
uri- 要解析内容的位置。 -
dh- 要使用的SAX DefaultHandler。 - 抛出:
-
IllegalArgumentException- 如果uri为null。 -
IOException- 如果发生任何IO错误。 -
SAXException- 如果在处理过程中发生任何SAX错误。 - 参见:
-
parse
使用指定的HandlerBase解析指定的XML文件中的内容。推荐使用此方法的DefaultHandler版本,因为HandlerBase类在SAX 2.0中已被弃用- 参数:
-
f- 包含要解析的XML的文件 -
hb- 要使用的SAX HandlerBase。 - 抛出:
-
IllegalArgumentException- 如果File对象为null。 -
IOException- 如果发生任何IO错误。 -
SAXException- 如果在处理过程中发生任何SAX错误。 - 参见:
-
parse
使用指定的DefaultHandler解析指定的XML文件中的内容。- 参数:
-
f- 包含要解析的XML的文件 -
dh- 要使用的SAX DefaultHandler。 - 抛出:
-
IllegalArgumentException- 如果File对象为null。 -
IOException- 如果发生任何IO错误。 -
SAXException- 如果在处理过程中发生任何SAX错误。 - 参见:
-
parse
使用指定的HandlerBase解析给定的InputSource中的内容作为XML。推荐使用此方法的DefaultHandler版本,因为HandlerBase类在SAX 2.0中已被弃用- 参数:
-
is- 包含要解析内容的InputSource。 -
hb- 要使用的SAX HandlerBase。 - 抛出:
-
IllegalArgumentException- 如果InputSource对象为null。 -
IOException- 如果发生任何IO错误。 -
SAXException- 如果在处理过程中发生任何SAX错误。 - 参见:
-
parse
使用指定的DefaultHandler解析给定的InputSource中的内容作为XML。- 参数:
-
is- 包含要解析内容的InputSource。 -
dh- 要使用的SAX DefaultHandler。 - 抛出:
-
IllegalArgumentException- 如果InputSource对象为null。 -
IOException- 如果发生任何IO错误。 -
SAXException- 如果在处理过程中发生任何SAX错误。 - 参见:
-
getParser
返回由此类实现封装的SAX解析器。- 返回:
- 此类实现封装的SAX解析器。
- 抛出:
-
SAXException- 如果在处理过程中发生任何SAX错误。
-
getXMLReader
返回由此类实现封装的XMLReader。- 返回:
- 此类实现封装的XMLReader。
- 抛出:
-
SAXException- 如果在处理过程中发生任何SAX错误。
-
isNamespaceAware
public abstract boolean isNamespaceAware()指示此解析器是否配置为理解命名空间。- 返回:
- 如果此解析器配置为理解命名空间,则为true;否则为false。
-
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、外部实体引用的访问协议。如果由于此属性的限制而在解析过程中拒绝访问,则由SAXException在SAXParser定义的解析方法中抛出。设置
XMLConstants.ACCESS_EXTERNAL_SCHEMA属性会限制对由schemaLocation属性设置的外部模式的访问协议。如果由于此属性的限制而在解析过程中拒绝访问,则由SAXException在SAXParser定义的解析方法中抛出。
- 参数:
-
name- 要设置的属性的名称。 -
value- 要设置的属性的值。 - 抛出:
-
SAXNotRecognizedException- 当底层XMLReader不识别属性名称时。 -
SAXNotSupportedException- 当底层XMLReader识别属性名称但不支持该属性时。 - 参见:
-
-
getProperty
public abstract Object getProperty(String name) throws SAXNotRecognizedException, SAXNotSupportedException 返回底层实现中请求的特定属性
XMLReader。- 参数:
-
name- 要检索的属性的名称。 - 返回:
- 请求属性的值。
- 抛出:
-
SAXNotRecognizedException- 当底层XMLReader不识别属性名称时。 -
SAXNotSupportedException- 当底层XMLReader识别属性名称但不支持该属性时。 - 参见:
-
getSchema
获取XML处理器正在使用的
Schema的引用。如果未使用模式,则返回
null。- 返回:
-
正在使用的
Schema或如果未使用则为null - 抛出:
-
UnsupportedOperationException- 当实现未覆盖此方法时 - 自:
- 1.5
-
isXIncludeAware
public boolean isXIncludeAware()获取此解析器的XInclude处理模式。
- 返回:
-
当从工厂创建此解析器时,
SAXParserFactory.isXIncludeAware()的返回值。 - 抛出:
-
UnsupportedOperationException- 当实现未覆盖此方法时 - 自:
- 1.5
- 参见:
-