ublic abstract class SAXParser extends Object
定义包装 XMLReader
实现类的 API。在 JAXP 1.0 中,此类包装 Parser
接口,但是此接口由 XMLReader
取代。为了便于过渡,此类继续支持相同的名称和接口,并支持新方法。 此类的实例可以从 SAXParserFactory.newSAXParser()
方法获得。获取此类的实例之后,将可以从各种输入源解析 XML。这些输入源为 InputStream、File、URL 和 SAX InputSource。
此静态方法根据系统属性设置创建新的工厂实例,如果未定义属性,则使用平台默认值。
控制创建哪个工厂实现的系统属性命名为 "javax.xml.parsers.SAXParserFactory"
。此属性命名一个类,该类为此抽象类的具体子类。如果未定义属性,将使用默认的平台。
HandlerBase
或
DefaultHandler
的方法。
包装基础实现的此类的实现程序可以考虑使用 ParserAdapter
类,从而使其 SAX1 实现最初在此修订类下工作。
构造方法摘要 | |
---|---|
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, DefaultHandler dh) 使用指定的 DefaultHandler 将指定文件的内容解析为 XML。 |
void | parse(File f, HandlerBase hb) 使用指定的 HandlerBase 将指定文件的内容解析为 XML。 |
void | parse(InputSource is, DefaultHandler dh) 使用指定的 DefaultHandler 将给定 InputSource 的内容解析为 XML。 |
void | parse(InputSource is, HandlerBase hb) 使用指定的 HandlerBase 将给定 InputSource 的内容解析为 XML。 |
void | parse(InputStream is, DefaultHandler dh) 使用指定的 DefaultHandler 将给定的 InputStream 实例的内容解析为 XML。 |
void | parse(InputStream is, DefaultHandler dh, String systemId) 使用指定的 DefaultHandler 将给定的 InputStream 实例的内容解析为 XML。 |
void | parse(InputStream is, HandlerBase hb) 使用指定的 HandlerBase 将给定的 InputStream 实例的内容解析为 XML。 |
void | parse(InputStream is, HandlerBase hb, String systemId) 使用指定的 HandlerBase 将给定的 InputStream 实例的内容解析为 XML。 |
void | parse(String uri, DefaultHandler dh) 使用指定的 DefaultHandler 将给定统一资源标识符 (URI) 描述的内容解析为 XML。 |
void | parse(String uri, HandlerBase hb) 使用指定的 HandlerBase 将给定统一资源标识符 (URI) 描述的内容解析为 XML。 |
void | reset() 将此 SAXParser 重置为其原始配置。 |
abstract void | setProperty(String name, Object value) 设置 XMLReader 的基础实现中的特定属性。 |
从类 java.lang.Object 继承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
构造方法详细信息 |
---|
SAXParser
protected SAXParser()
-
将阻止实例化的受保护的构造方法。使用
SAXParserFactory.newSAXParser()
。
方法详细信息 |
---|
reset
public void reset()
-
将此
SAXParser
重置为其原始配置。SAXParser
被重置为使用SAXParserFactory.newSAXParser()
创建它时的状态。reset()
在设计上旨在允许重用现有的SAXParser
,从而节省与创建新的SAXParser
相关的资源。重置的
SAXParser
不能保证具有相同的Schema
Object
,如Object.equals(Object obj)
。可以保证具有功能相等的Schema
。 -
-
从以下版本开始:
- 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 为 null。 -
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
- 如果在与InputStream
的交互过程中发生任何 IO 错误。 -
SAXException
- 如果在处理过程中发生任何 SAX 错误。
另请参见:
-
中的此方法。
-
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
- 解析相关 URL 所需的 systemId。
抛出:
-
IllegalArgumentException
- 如果给定的 InputStream 为 null。 -
IOException
- 如果发生任何 IO 错误。 -
SAXException
- 如果在处理过程中发生任何 SAX 错误。
另请参见:
-
org.xml.sax.DocumentHandler 版本。
-
parse
public void parse(String uri,
HandlerBase hb)
throws SAXException,
IOException
-
使用指定的
HandlerBase
将给定统一资源标识符 (URI) 描述的内容解析为 XML。 建议使用此方法的 DefaultHandler 版本,因为HandlerBase
类在 SAX 2.0 中已废弃 -
-
参数:
-
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 版本,因为 HandlerBase 类在 SAX 2.0 中已废弃。 -
-
参数:
-
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 版本,因为 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
-
使用指定的
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;否则返回 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 中找到。 -
-
参数:
-
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
的引用。如果没有使用 schema,则返回
null
。 -
-
返回:
-
返回正在使用的
Schema
,如果一个也没有使用,则返回null
抛出:
-
UnsupportedOperationException
- 为了向后兼容,当使用 JAXP 较早版本的实现时,将抛出此异常。
从以下版本开始:
- 1.5
-
返回正在使用的
isXIncludeAware
public boolean isXIncludeAware()
-
获取此解析器的 XInclude 处理模式。
-
-
返回:
-
当从工厂创建此解析器时,返回
SAXParserFactory.isXIncludeAware()
的返回值。
抛出:
-
UnsupportedOperationException
- 为了向后兼容,当使用 JAXP 较早版本的实现时,将抛出此异常。
-
当从工厂创建此解析器时,返回