- 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
-
-
构造方法摘要
构造方法 变量 构造器 描述 protectedSAXParser()受保护的构造函数以防止实例化。
-
方法摘要
所有方法 实例方法 抽象方法 具体的方法 变量和类型 方法 描述 abstract ParsergetParser()返回由此类的实现封装的SAX解析器。abstract ObjectgetProperty(String name)返回XMLReader的底层实现中请求的特定属性。SchemagetSchema()获取对XML处理器使用的Schema的引用。abstract XMLReadergetXMLReader()返回由此类的实现封装的XMLReader。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)使用指定的HandlerBase将给定InputSource的内容解析为XML。voidparse(InputSource is, DefaultHandler dh)使用指定的DefaultHandler将给定InputSource的内容解析为XML。voidreset()将此SAXParser重置为其原始配置。abstract voidsetProperty(String name, Object value)设置XMLReader的基础实现中的特定属性。
-
-
-
构造方法详细信息
-
SAXParser
protected SAXParser()
受保护的构造函数以防止实例化。 使用
SAXParserFactory.newSAXParser()。
-
-
方法详细信息
-
reset
public void reset()
将此
SAXParser重置为其原始配置。SAXParser将重置为与使用SAXParserFactory.newSAXParser()创建时相同的状态。reset()旨在允许重用现有的SAXParser从而节省与创建新SAXParser相关的资源。复位
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版本,因为在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)
-
-