- 自从:
- 1.4
-
构造方法总结
构造方法 -
方法总结
修饰符和类型方法描述abstract boolean
getFeature
(String name) 返回在 org.xml.sax.XMLReader 的底层实现中请求的特定属性。获取通过setSchema(Schema schema)
方法指定的Schema
对象。boolean
指示工厂是否配置为生成可识别名称空间的解析器。boolean
指示工厂是否配置为生成在解析期间验证 XML 内容的解析器。boolean
获取 XInclude 处理的状态。static SAXParserFactory
创建SAXParserFactory
内置系统默认实现的新实例。static SAXParserFactory
创建SAXParserFactory
内置系统默认实现的新 NamespaceAware 实例。static SAXParserFactory
获得SAXParserFactory
的新实例。static SAXParserFactory
newInstance
(String factoryClassName, ClassLoader classLoader) 从类名中获取SAXParserFactory
的新实例。static SAXParserFactory
创建SAXParserFactory
的新 NamespaceAware 实例。static SAXParserFactory
newNSInstance
(String factoryClassName, ClassLoader classLoader) 从类名创建SAXParserFactory
的新 NamespaceAware 实例。abstract SAXParser
使用当前配置的工厂参数创建 SAXParser 的新实例。abstract void
setFeature
(String name, boolean value) 在 org.xml.sax.XMLReader 的底层实现中设置特定功能。void
setNamespaceAware
(boolean awareness) 指定由此代码生成的解析器将提供对 XML 名称空间的支持。void
设置Schema
以供从此工厂创建的解析器使用。void
setValidating
(boolean validating) 指定由此代码生成的解析器将在解析文档时验证它们。void
setXIncludeAware
(boolean state) 设置 XInclude 处理的状态。
-
构造方法详细信息
-
SAXParserFactory
protected SAXParserFactory()受保护的构造函数强制使用newInstance()
。
-
-
方法详情
-
newDefaultNSInstance
创建SAXParserFactory
内置系统默认实现的新 NamespaceAware 实例。默认情况下,工厂实例生成的解析器提供对 XML 命名空间的支持。- 实现要求:
-
除了使用与
newDefaultInstance()
相同的进程创建工厂实例外,此方法还必须将 NamespaceAware 设置为 true。 - 返回:
SAXParserFactory
内置系统默认实现的新实例。- 自从:
- 13
-
newNSInstance
创建SAXParserFactory
的新 NamespaceAware 实例。默认情况下,工厂实例生成的解析器提供对 XML 命名空间的支持。- 实现要求:
-
除了使用与
newInstance()
相同的进程创建工厂实例外,此方法还必须将 NamespaceAware 设置为 true。 - 返回:
SAXParserFactory
的新实例- 抛出:
FactoryConfigurationError
- 在 服务配置错误 的情况下,或者如果实现不可用或无法实例化。- 自从:
- 13
-
newNSInstance
从类名创建SAXParserFactory
的新 NamespaceAware 实例。默认情况下,工厂实例生成的解析器提供对 XML 命名空间的支持。- 实现要求:
-
除了使用与
newInstance(java.lang.String, java.lang.ClassLoader)
相同的进程创建工厂实例外,此方法还必须将 NamespaceAware 设置为 true。 - 参数:
factoryClassName
- 提供javax.xml.parsers.SAXParserFactory
实现的完全限定工厂类名称。classLoader
-ClassLoader
用于加载工厂类。如果是null
,则使用当前Thread
的context classLoader加载工厂类。- 返回:
SAXParserFactory
的新实例- 抛出:
FactoryConfigurationError
- 如果factoryClassName
是null
,或者无法加载、实例化工厂类。- 自从:
- 13
-
newDefaultInstance
创建SAXParserFactory
内置系统默认实现的新实例。- 返回:
SAXParserFactory
内置系统默认实现的新实例。- 自从:
- 9
-
newInstance
获得SAXParserFactory
的新实例。此方法使用 JAXP 查找机制 来确定要加载的SAXParserFactory
实现类。一旦应用程序获得了对
SAXParserFactory
的引用,它就可以使用工厂来配置和获取解析器实例。故障排除提示
设置
jaxp.debug
系统属性将导致此方法向System.err
打印大量调试消息,说明它正在做什么以及正在查看的位置。如果您在加载
SAXParser
时遇到问题,请尝试:java -Djaxp.debug=1 YourProgram ....
- 返回:
- SAXParserFactory 的新实例。
- 抛出:
FactoryConfigurationError
- 在 服务配置错误 的情况下,或者如果实现不可用或无法实例化。
-
newInstance
从类名中获取SAXParserFactory
的新实例。当类路径中有多个提供程序时,此函数很有用。它为应用程序提供了更多控制,因为它可以指定应加载哪个提供程序。一旦应用程序获得对
SAXParserFactory
的引用,它就可以使用工厂来配置和获取解析器实例。故障排除提示
设置
jaxp.debug
系统属性将导致此方法向System.err
打印大量调试消息,说明它正在做什么以及正在查看的位置。如果遇到问题,请尝试:
java -Djaxp.debug=1 YourProgram ....
- 参数:
factoryClassName
- 提供javax.xml.parsers.SAXParserFactory
实现的完全限定工厂类名称。classLoader
-ClassLoader
用于加载工厂类。如果使用null
currentThread
的context classLoader加载工厂类。- 返回:
SAXParserFactory
的新实例- 抛出:
FactoryConfigurationError
- 如果factoryClassName
是null
,或者无法加载、实例化工厂类。- 自从:
- 1.6
- 参见:
-
newSAXParser
使用当前配置的工厂参数创建 SAXParser 的新实例。- 返回:
- SAXParser 的新实例。
- 抛出:
ParserConfigurationException
- 如果无法创建满足请求配置的解析器。SAXException
- 针对 SAX 错误。
-
setNamespaceAware
public void setNamespaceAware(boolean awareness) 指定由此代码生成的解析器将提供对 XML 名称空间的支持。默认情况下,此值设置为false
。- 参数:
awareness
- 如果此代码生成的解析器将提供对 XML 名称空间的支持,则为真;否则为假。
-
setValidating
public void setValidating(boolean validating) 指定由此代码生成的解析器将在解析文档时验证它们。默认情况下,此值设置为false
。请注意,此处的“验证”是指 XML 推荐中定义的 验证解析器。换句话说,它本质上只是控制 DTD 验证。 (JAXP 1.2 中定义的遗留两个属性除外。)
要使用 W3C XML Schema 或 RELAX NG 等现代模式语言而不是 DTD,您可以通过保留
setValidating(boolean)
方法false
将解析器配置为非验证解析器,然后使用setSchema(Schema)
方法将模式与解析器相关联。- 参数:
validating
- 如果此代码生成的解析器将在解析文档时验证文档,则为真;否则为假。
-
isNamespaceAware
public boolean isNamespaceAware()指示工厂是否配置为生成可识别名称空间的解析器。- 返回:
- 如果工厂配置为生成名称空间感知的解析器,则为真;否则为假。
-
isValidating
public boolean isValidating()指示工厂是否配置为生成在解析期间验证 XML 内容的解析器。- 返回:
- 如果工厂配置为生成在解析期间验证 XML 内容的解析器,则为 true;否则为假。
-
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 架构构造。如果出于安全原因限制 XML 处理,将通过调用已注册的ErrorHandler.fatalError(SAXParseException exception)
来报告。请参阅SAXParser
parse
处理程序规范的方法。- 当特性为
false
时,实现将根据 XML 规范处理 XML,而不考虑可能的实现限制。
- 参数:
name
- 要设置的功能的名称。value
- 要设置的功能的值。- 抛出:
ParserConfigurationException
- 如果无法创建满足请求配置的解析器。SAXNotRecognizedException
- 当底层 XMLReader 无法识别属性名称时。SAXNotSupportedException
- 当底层 XMLReader 识别属性名称但不支持该属性时。NullPointerException
- 如果name
参数为空。- 参见:
-
getFeature
public abstract boolean getFeature(String name) throws ParserConfigurationException , SAXNotRecognizedException , SAXNotSupportedException 返回在 org.xml.sax.XMLReader 的底层实现中请求的特定属性。- 参数:
name
- 要检索的属性的名称。- 返回:
- 所请求属性的值。
- 抛出:
ParserConfigurationException
- 如果无法创建满足请求配置的解析器。SAXNotRecognizedException
- 当底层 XMLReader 无法识别属性名称时。SAXNotSupportedException
- 当底层 XMLReader 识别属性名称但不支持该属性时。- 参见:
-
getSchema
获取通过setSchema(Schema schema)
方法指定的Schema
对象。- 返回:
-
最后通过
setSchema(Schema)
方法设置的Schema
对象,如果自创建SAXParserFactory
以来未调用该方法,则为 null。 - 抛出:
UnsupportedOperationException
- 当实现不覆盖此方法时- 自从:
- 1.5
-
setSchema
设置Schema
以供从此工厂创建的解析器使用。当
Schema
不为空时,解析器将使用从它创建的验证器来验证文档,然后再将信息传递给应用程序。当验证器发现警告/错误/致命错误时,解析器必须像解析器本身发现这些错误一样处理它们。换句话说,如果设置了用户指定的
ErrorHandler
,它必须接收到那些错误,如果没有,则必须根据特定于实现的默认错误处理规则来处理它们。验证器可以修改 SAX 事件流(例如,通过添加文档中缺少的默认值),解析器负责确保应用程序将接收那些修改后的事件流。
最初,
null
被设置为Schema
。即使
isValidating()
方法返回false
,此处理也会生效。将
http://java.sun.com/xml/jaxp/properties/schemaSource
属性和/或http://java.sun.com/xml/jaxp/properties/schemaLanguage
属性与非空Schema
对象结合使用是错误的。当在SAXParser
上设置这些属性时,此类配置将导致SAXException
异常。实现者须知
解析器必须能够与任何
Schema
实现一起工作。但是,解析器和模式可以使用特定于实现的自定义机制,只要它们产生规范中描述的结果即可。- 参数:
schema
-Schema
使用,null
删除架构。- 抛出:
UnsupportedOperationException
- 当实现不覆盖此方法时- 自从:
- 1.5
-
setXIncludeAware
public void setXIncludeAware(boolean state) 设置 XInclude 处理的状态。如果在文档实例中发现 XInclude 标记,是否应按照 XML 包含 (XInclude) 1.0 版 中指定的方式进行处理。
XInclude 处理默认为
false
。- 参数:
state
- 将 XInclude 处理设置为true
或false
- 抛出:
UnsupportedOperationException
- 当实现不覆盖此方法时- 自从:
- 1.5
-
isXIncludeAware
public boolean isXIncludeAware()获取 XInclude 处理的状态。- 返回:
- XInclude 处理的当前状态
- 抛出:
UnsupportedOperationException
- 当实现不覆盖此方法时- 自从:
- 1.5
-