|
|||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
javax.xml.parsers
类 SAXParserFactory
java.lang.Object javax.xml.parsers.SAXParserFactory
-
public abstract class SAXParserFactory
- extends Object
定义工厂 API,使应用程序能够配置和获取基于 SAX 的解析器以解析 XML 文档。
构造方法摘要 | |
---|---|
protected |
SAXParserFactory() 受保护的构造方法,以强制使用 newInstance() 。 |
方法摘要 | |
---|---|
abstract boolean |
getFeature(String name) 返回 org.xml.sax.XMLReader 的基础实现中请求的特定属性。 |
Schema |
getSchema() 获取通过 setSchema(Schema schema) 方法指定的 Schema 对象。 |
boolean |
isNamespaceAware() 指示是否将工厂配置为生成具有感知名称空间功能的解析器。 |
boolean |
isValidating() 指示是否将工厂配置为生成解析器,该解析器在解析时验证 XML 内容。 |
boolean |
isXIncludeAware() 获取 XInclude 处理的状态。 |
static SAXParserFactory |
newInstance() 获取 SAXParserFactory 的一个新实例。 |
abstract SAXParser |
newSAXParser() 使用当前配置的工厂参数创建 SAXParser 的一个新实例。 |
abstract void |
setFeature(String name, boolean value) 在 org.xml.sax.XMLReader 的基础实现中设置特定的功能。 |
void |
setNamespaceAware(boolean awareness) 指定由此代码生成的解析器将提供对 XML 名称空间的支持。 |
void |
setSchema(Schema schema) 设置将由解析器使用的 Schema ,该解析器从此工厂创建。 |
void |
setValidating(boolean validating) 指定由此代码生成的解析器将验证被解析的文档。 |
void |
setXIncludeAware(boolean state) 设置 XInclude 处理的状态。 |
从类 java.lang.Object 继承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
构造方法详细信息 |
---|
SAXParserFactory
protected SAXParserFactory()
-
受保护的构造方法,以强制使用
newInstance()
。
方法详细信息 |
---|
newInstance
public static SAXParserFactory newInstance()
-
获取
SAXParserFactory
的一个新实例。此静态方法创建一个新的工厂实例,此方法使用下面有序的查找过程来确定要加载的SAXParserFactory
实例类:- 使用
javax.xml.parsers.SAXParserFactory
系统属性。 - 使用 JRE 文件夹中的属性文件 "lib/jaxp.properties"。此配置文件格式为标准的
java.util.Properties
且包含实现类的完全限定名,其中实现类的键是上述定义的系统属性。 JAXP 实现只读取一次 jaxp.properties 文件,然后缓存其值供以后使用。如果首次尝试读取文件时,文件不存在,则不会再次尝试检查该文件是否存在。首次读取 jaxp.properties 后,其中的属性值不能再更改。 - 如果可以,使用 Services API(在 JAR 规范中进行了详细描述)来确定类名称。Services API 将查找在运行时可用的 jar 中
META-INF/services/javax.xml.parsers.SAXParserFactory
文件中的类名。 - 平台默认的
SAXParserFactory
实例。
SAXParserFactory
的引用后,它可以使用工厂来配置和获取解析器实例。疑难解答提示
设置
jaxp.debug
系统属性将导致此方法将许多调试消息打印到 System.err,以说明其执行的操作以及在何处查找。如果加载
DocumentBuilder
有问题,请尝试:java -Djaxp.debug=1 YourProgram ....
- 使用
-
- 返回:
- 新的 SAXParserFactory 实例。
- 抛出:
FactoryConfigurationError
- 如果该实现不可用,或者无法实例化。
newSAXParser
public abstract SAXParser newSAXParser() throws ParserConfigurationException, SAXException
-
使用当前配置的工厂参数创建 SAXParser 的一个新实例。
-
- 返回:
- 新的 SAXParser 实例。
- 抛出:
ParserConfigurationException
- 如果无法创建满足所请求配置的解析器,将抛出该异常。SAXException
- 用于 SAX 错误。
setNamespaceAware
public void setNamespaceAware(boolean awareness)
-
指定由此代码生成的解析器将提供对 XML 名称空间的支持。默认情况下,其值设置为
false
。 -
- 参数:
awareness
- 如果由此代码生成的解析器将提供对 XML 名称空间的支持,则为 true;否则为 false。
setValidating
public void setValidating(boolean validating)
-
指定由此代码生成的解析器将验证被解析的文档。默认情况下,其值设置为
false
。注意,此处“验证”是指 XML 规范中定义的验证解析器。换句话说,它实际上仅控制 DTD 验证。(JAXP 1.2 中定义的两个遗留属性除外。)有关更多详细信息,请参见这里。)
要使用现代模式语言(如 W3C XML Schema 或 RELAX NG)而不使用 DTD,您可以将解析器配置为非验证解析器,方法是将
setValidating(boolean)
方法保留为 false,然后使用setSchema(Schema)
方法将一个模式与解析器关联。 -
- 参数:
validating
- 如果由此代码生成的解析器在解析文档时验证文档,则为 true;否则为 false。
isNamespaceAware
public boolean isNamespaceAware()
- 指示是否将工厂配置为生成具有感知名称空间功能的解析器。
-
- 返回:
- 如果将工厂配置为生成具有感知名称空间功能的解析器,则返回 true;否则返回 false。
isValidating
public boolean isValidating()
- 指示是否将工厂配置为生成解析器,该解析器在解析时验证 XML 内容。
-
- 返回:
- 如果将工厂配置为生成在解析时验证 XML 内容的解析器,则返回 true;否则返回 false。
setFeature
public abstract void setFeature(String name, boolean value) throws ParserConfigurationException, SAXNotRecognizedException, SAXNotSupportedException
-
在 org.xml.sax.XMLReader 的基础实现中设置特定的功能。核心功能和属性列表可以在 http://www.saxproject.org/ 中找到。
所有实现必须支持
XMLConstants.FEATURE_SECURE_PROCESSING
功能。当功能为以下情况时:true
:该实现将限制 XML 处理遵守实现限制。示例包括实体扩展限制和将使用大量资源的 XML Schema 构造。如果出于安全原因限制 XML 处理,将通过调用注册的ErrorHandler.fatalError(SAXParseException exception)
进行报告。请参见处理程序规范的SAXParser
parse
方法。- 当该功能为
false
时,该实现将根据 XML 规范处理 XML,而不管可能的实现限制。
-
- 参数:
name
- 要设置的功能的名称。value
- 要设置的功能值。- 抛出:
ParserConfigurationException
- 如果无法创建满足所请求配置的解析器,将抛出该异常。SAXNotRecognizedException
- 当基础 XMLReader 不能识别属性名称时。SAXNotSupportedException
- 当基础 XMLReader 可以识别属性名称,但不支持该属性时。NullPointerException
- 如果name
参数为 null。- 另请参见:
XMLReader.setFeature(java.lang.String, boolean)