- 自从:
- 1.4
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionabstract booleangetFeature(String name) 返回底层实现org.xml.sax.XMLReader中请求的特定属性。通过setSchema(Schema schema)方法获取指定的Schema对象。boolean指示工厂是否配置为生成具有命名空间感知的解析器。boolean指示工厂是否配置为在解析期间验证XML内容的解析器。boolean获取XInclude处理的状态。static SAXParserFactory创建一个SAXParserFactory内置系统默认实现的新实例。static SAXParserFactory创建一个具有命名空间感知的SAXParserFactory内置系统默认实现的新实例。static SAXParserFactory获取一个SAXParserFactory的新实例。static SAXParserFactorynewInstance(String factoryClassName, ClassLoader classLoader) 从类名获取一个SAXParserFactory的新实例。static SAXParserFactory创建一个具有命名空间感知的SAXParserFactory的新实例。static SAXParserFactorynewNSInstance(String factoryClassName, ClassLoader classLoader) 从类名创建一个具有命名空间感知的SAXParserFactory的新实例。abstract SAXParser使用当前配置的工厂参数创建一个新的SAXParser实例。abstract voidsetFeature(String name, boolean value) 在org.xml.sax.XMLReader的底层实现中设置特定的功能。voidsetNamespaceAware(boolean awareness) 指定此代码生成的解析器将提供对XML命名空间的支持。void设置用于从此工厂创建的解析器使用的Schema。voidsetValidating(boolean validating) 指定此代码生成的解析器将在解析期间验证文档。voidsetXIncludeAware(boolean state) 设置XInclude处理的状态。
-
Constructor Details
-
SAXParserFactory
protected SAXParserFactory()受保护的构造函数,强制使用newInstance()。
-
-
Method Details
-
newDefaultNSInstance
创建一个具有命名空间感知的SAXParserFactory内置系统默认实现的新实例。工厂实例生成的解析器默认提供对XML命名空间的支持。- 实现要求:
-
除了使用与
newDefaultInstance()相同的过程创建工厂实例外,此方法必须将NamespaceAware设置为true。 - 返回:
-
SAXParserFactory内置系统默认实现的新实例。 - 自从:
- 13
-
newNSInstance
创建一个具有命名空间感知的SAXParserFactory的新实例。工厂实例生成的解析器默认提供对XML命名空间的支持。- 实现要求:
-
除了使用与
newInstance()相同的过程创建工厂实例外,此方法必须将NamespaceAware设置为true。 - 返回:
-
SAXParserFactory的新实例 - 抛出:
-
FactoryConfigurationError- 如果存在服务配置错误,或者实现不可用或无法实例化。 - 自从:
- 13
-
newNSInstance
创建一个具有命名空间感知的SAXParserFactory的新实例。工厂实例生成的解析器默认提供对XML命名空间的支持。- 实现要求:
-
除了使用与
newInstance(java.lang.String, java.lang.ClassLoader)相同的过程创建工厂实例外,此方法必须将NamespaceAware设置为true。 - 参数:
-
factoryClassName- 提供javax.xml.parsers.SAXParserFactory实现的完全限定的工厂类名。 -
classLoader- 用于加载工厂类的ClassLoader。如果为null,则使用当前Thread的上下文类加载器来加载工厂类。 - 返回:
-
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,则使用当前Thread的上下文类加载器来加载工厂类。 - 返回:
-
SAXParserFactory的新实例 - 抛出:
-
FactoryConfigurationError- 如果factoryClassName为null,或者无法加载、实例化工厂类。 - 自从:
- 1.6
- 参见:
-
newSAXParser
使用当前配置的工厂参数创建一个新的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)来报告。请参阅SAXParserparse方法以获取处理程序规范。- 当功能为
false时,实现将根据XML规范处理XML,而不考虑可能的实现限制。
- 参数:
-
name- 要设置的功能的名称。 -
value- 要设置的功能的值。 - 抛出:
-
ParserConfigurationException- 如果无法创建满足请求配置的解析器。 -
SAXNotRecognizedException- 当底层XMLReader不识别属性名称时。 -
SAXNotSupportedException- 当底层XMLReader识别属性名称但不支持该属性时。 -
NullPointerException- 如果name参数为null。 - 参见:
-
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起:
- 1.5
-
setSchema
设置从此工厂创建的解析器要使用的Schema。当
Schema为非null时,解析器将使用从中创建的验证器对文档进行验证,然后将信息传递给应用程序。当验证器发现警告/错误/致命错误时,解析器必须处理它们,就好像这些错误是解析器本身发现的一样。换句话说,如果设置了用户指定的
ErrorHandler,它必须接收这些错误,如果没有,则必须根据实现特定的默认错误处理规则处理它们。验证器可能修改SAX事件流(例如通过添加文档中缺失的默认值),解析器负责确保应用程序将接收到这些修改后的事件流。
最初,将
null设置为Schema。即使
isValidating()方法返回false,此处理也会生效。在使用非null的
Schema对象时,使用http://java.sun.com/xml/jaxp/properties/schemaSource属性和/或http://java.sun.com/xml/jaxp/properties/schemaLanguage属性是错误的。这样的配置将在SAXParser上设置这些属性时引发SAXException异常。实现者注意事项
解析器必须能够与任何
Schema实现一起工作。但是,解析器和模式允许使用特定于实现的自定义机制,只要它们产生规范中描述的结果即可。- 参数:
-
schema- 要使用的Schema,null表示移除模式。 - 抛出:
-
UnsupportedOperationException- 当实现未覆盖此方法时 - 自1.5起:
- 1.5
-
setXIncludeAware
public void setXIncludeAware(boolean state) 设置XInclude处理的状态。如果在文档实例中找到XInclude标记,是否应按照XML Inclusions (XInclude) Version 1.0中指定的方式处理它。
XInclude处理默认为
false。- 参数:
-
state- 将XInclude处理设置为true或false - 抛出:
-
UnsupportedOperationException- 当实现未覆盖此方法时 - 自1.5起:
- 1.5
-
isXIncludeAware
public boolean isXIncludeAware()获取XInclude处理的状态。- 返回:
- XInclude处理的当前状态
- 抛出:
-
UnsupportedOperationException- 当实现未覆盖此方法时 - 自1.5起:
- 1.5
-