- java.lang.Object
-
- javax.xml.transform.TransformerFactory
-
- 已知直接子类:
-
SAXTransformerFactory
public abstract class TransformerFactory extends Object
TransformerFactory实例可用于创建
Transformer和Templates对象。确定要创建哪个Factory实现的系统属性名为
"javax.xml.transform.TransformerFactory"。 这个属性命名一个具体的子类的TransformerFactory抽象类。 如果未定义属性,则使用平台默认值。- 从以下版本开始:
- 1.5
-
-
构造方法摘要
构造方法 Modifier Constructor 描述 protectedTransformerFactory()默认构造函数是有意保护的。
-
方法摘要
所有方法 静态方法 接口方法 抽象方法 具体的方法 Modifier and Type 方法 描述 abstract SourcegetAssociatedStylesheet(Source source, String media, String title, String charset)通过符合给定条件的 xml-stylesheet processing instruction获取与XMLSource文档关联的样式表规范。abstract ObjectgetAttribute(String name)允许用户检索底层实现的特定属性。abstract ErrorListenergetErrorListener()获取TransformerFactory的错误事件处理程序。abstract booleangetFeature(String name)查找功能的值。abstract URIResolvergetURIResolver()获取在转换过程中默认使用的对象来解析document(),xsl:import或xsl:include中使用的URI。static TransformerFactorynewDefaultInstance()创建一个TransformerFactory内建系统默认实现的新实例。static TransformerFactorynewInstance()获取一个新的实例TransformerFactory。static TransformerFactorynewInstance(String factoryClassName, ClassLoader classLoader)从工厂类名称获取一个新的实例TransformerFactory。abstract TemplatesnewTemplates(Source source)将源处理为一个Templates对象,它是源的编译表示。abstract TransformernewTransformer()创建一个新的Transformer执行的副本Source至Result。abstract TransformernewTransformer(Source source)处理Source成TransformerObject。abstract voidsetAttribute(String name, Object value)允许用户在底层实现上设置特定属性。abstract voidsetErrorListener(ErrorListener listener)设置TransformerFactory的错误事件侦听器,它用于处理转换指令,而不是转换本身。abstract voidsetFeature(String name, boolean value)设置此工厂创建的TransformerFactory和Transformers或Template的功能。abstract voidsetURIResolver(URIResolver resolver)设置在转换期间默认使用的对象,以解析document(),xsl:import或xsl:include中使用的URI。
-
-
-
方法详细信息
-
newDefaultInstance
public static TransformerFactory newDefaultInstance()
创建一个TransformerFactory内置系统默认实现的新实例。- 结果
-
TransformerFactory内置系统默认实现的新实例。 - 从以下版本开始:
- 9
-
newInstance
public static TransformerFactory newInstance() throws TransformerFactoryConfigurationError
获取一个新的实例TransformerFactory。 这个静态方法创建一个新的工厂实例。此方法使用以下有序查找过程来确定要加载的
TransformerFactory实现类:- 使用
javax.xml.transform.TransformerFactory系统属性。 使用配置文件“jaxp.properties”。 该文件采用标准
Properties格式,通常位于Java安装的conf目录中。 它包含实现类的完全限定名称,其中键是上面定义的系统属性。jaxp.properties文件由JAXP实现只读一次,然后将其值缓存以备将来使用。 如果文件第一次尝试读取文件不存在,则不再进一步检查其存在。 在第一次读取jaxp.properties之后,无法更改任何属性的值。
使用由
ServiceLoader类定义的服务提供商加载工具尝试使用default loading mechanism查找和加载服务的实现 :服务提供商加载工具将使用current thread's context class loader尝试加载服务。 如果上下文类加载器为null,则将使用system class loader 。否则返回system-default实现。
一旦应用程序获得了对这个
TransformerFactory的引用,就可以使用工厂来配置和获取变压器实例。- 结果
- 新的TransformerFactory实例,从不为null。
- 异常
-
TransformerFactoryConfigurationError- 在service configuration error的情况下抛出,或者实现不可用或无法实例化。
- 使用
-
newInstance
public static TransformerFactory newInstance(String factoryClassName, ClassLoader classLoader) throws TransformerFactoryConfigurationError
从工厂类名称获取一个新的实例TransformerFactory。 在类路径中有多个提供程序时,此功能很有用。 它可以更好地控制应用程序,因为它可以指定应该加载哪个提供程序。一旦应用程序获得对
TransformerFactory的引用,就可以使用工厂来配置和获取变压器实例。提示进行故障排除
设置
jaxp.debug系统属性将导致此方法打印大量调试消息到System.err有关它在做什么和它在哪里看。如果您有问题,请尝试:
java -Djaxp.debug=1 YourProgram ....- 参数
-
factoryClassName- 提供实施javax.xml.transform.TransformerFactory完全合格的工厂类名称。 -
classLoader-ClassLoader用于加载工厂类。 如果null当前的Thread的上下文classLoader用于加载工厂类。 - 结果
- 新的TransformerFactory实例,从不为null。
- 异常
-
TransformerFactoryConfigurationError- 如果factoryClassName是null,或者工厂类无法加载,实例化。 - 从以下版本开始:
- 1.6
- 另请参见:
-
newInstance()
-
newTransformer
public abstract Transformer newTransformer(Source source) throws TransformerConfigurationException
处理Source成TransformerObject。Source是符合XSL Transformations (XSLT) Version 1.0的XSLT文档。 必须注意不要同时使用Transformer多个Thread。 不同的TransformerFactories可以同时使用不同的Threads。- 参数
-
source-Source的XSLT文档用于创建Transformer。 XML的例子Source小号包括DOMSource,SAXSource,并StreamSource。 - 结果
-
一个
Transformer对象,可以用于在单个Thread执行转换,从不null。 - 异常
-
TransformerConfigurationException- 如果在解析Source时出现错误或无法创建Transformer实例,则Transformer。 - 另请参见:
- XSL Transformations (XSLT) Version 1.0
-
newTransformer
public abstract Transformer newTransformer() throws TransformerConfigurationException
创建一个新的Transformer执行的副本Source至Result。 即“ 身份转换 ”。- 结果
- 可用于在单个线程中执行转换的Transformer对象,从不为null。
- 异常
-
TransformerConfigurationException- 当无法创建Transformer实例时。
-
newTemplates
public abstract Templates newTemplates(Source source) throws TransformerConfigurationException
将源处理为一个Templates对象,它是源的编译表示。 然后可以在多个线程上同时使用此Templates对象。 创建一个Templates对象允许TransformerFactory对变换指令进行详细的性能优化,而不会影响运行时转换。- 参数
-
source- 保存URL,输入流等的对象 - 结果
-
一个能够用于转换目的的模板对象,从不
null。 - 异常
-
TransformerConfigurationException- 解析构造模板对象失败。
-
getAssociatedStylesheet
public abstract Source getAssociatedStylesheet(Source source, String media, String title, String charset) throws TransformerConfigurationException
通过符合给定条件的xml-stylesheet processing instruction获取与XMLSource文档关联的样式表规范。 请注意,可以返回多个样式表,在这种情况下,它们应用为单个样式表中的导入或级联列表。- 参数
-
source- XML源文档。 -
media- 要匹配的媒体属性。 可能为null,在这种情况下,将使用优先模板(即alternate = no)。 -
title- 要匹配的title属性的值。 可能为null。 -
charset- 要匹配的字符集属性的值。 可能为null。 - 结果
-
A
SourceObject适合传递给TransformerFactory。 - 异常
-
TransformerConfigurationException-一个异常是的分析过程中,如果出现错误occurings抛出source。 - 另请参见:
- Associating Style Sheets with XML documents Version 1.0
-
setURIResolver
public abstract void setURIResolver(URIResolver resolver)
设置在转换期间默认使用的对象,以解析document(),xsl:import或xsl:include中使用的URI。- 参数
-
resolver- 实现URIResolver接口的对象,或null。
-
getURIResolver
public abstract URIResolver getURIResolver()
获取在转换过程中默认使用的对象来解析document(),xsl:import或xsl:include中使用的URI。- 结果
- 使用setURIResolver设置的URIResolver。
-
setFeature
public abstract void setFeature(String name, boolean value) throws TransformerConfigurationException
设置此工厂创建的
TransformerFactory和Transformers或Template的功能。功能名称完全合格
URI秒。 实现可以定义自己的特征。 如果这个TransformerFactory或其创建的Transformer或TransformerFactory或Transformers或Templates不能支持该功能,则抛出一个TransformerConfigurationException。TransformerFactory可以公开特征值,但是无法更改其状态。所有实现都需要支持
XMLConstants.FEATURE_SECURE_PROCESSING功能。 当功能是:-
true:实现将限制XML处理以符合实现限制,并以按照实现定义的安全方式进行操作。 示例包括解析用户定义的样式表和功能。 如果XML处理由于安全原因而受到限制,则通过对已注册的ErrorListener.fatalError(TransformerException exception)的呼叫进行报告。 见setErrorListener(ErrorListener listener)。 -
false:实现将根据XML规范处理XML,而不考虑可能的实现限制。
- 参数
-
name- 功能名称。 -
value- 是功能状态true或false。 - 异常
-
TransformerConfigurationException- 如果这个TransformerFactory或其创建的Transformer或者Templates不能支持此功能。 -
NullPointerException- 如果name参数为空。
-
-
getFeature
public abstract boolean getFeature(String name)
查找功能的值。功能名称完全合格
URIs。 实现可以定义自己的特征。false返回如果TransformerFactory或者TransformerS或Template的IT创建不支持该功能。TransformerFactory可以公开特征值,但无法更改其状态。- 参数
-
name- 功能名称。 - 结果
-
当前状态的功能,
true或false。 - 异常
-
NullPointerException- 如果name参数为空。
-
setAttribute
public abstract void setAttribute(String name, Object value)
允许用户在底层实现上设置特定属性。 此上下文中的属性被定义为实现提供的选项。 如果底层实现无法识别属性,则抛出一个IllegalArgumentException。实现JAXP 1.5或更高版本的所有实现都需要支持
XMLConstants.ACCESS_EXTERNAL_DTD和XMLConstants.ACCESS_EXTERNAL_STYLESHEET属性。访问源文件中的外部DTD仅限于由
XMLConstants.ACCESS_EXTERNAL_DTD属性指定的协议。 如果由于此属性的限制,在转换期间访问被拒绝,则TransformerException将被抛出Transformer.transform(Source, Result)。访问样式表中的外部DTD仅限于
XMLConstants.ACCESS_EXTERNAL_DTD属性指定的协议。 如果由于此属性的限制,在创建新变压器期间访问被拒绝,则newTransformer(Source)将抛出newTransformer(Source)方法。通过样式表处理指令访问外部引用集,导入和包含元素仅限于
XMLConstants.ACCESS_EXTERNAL_STYLESHEET属性指定的协议。 如果由于此属性的限制,在创建新变压器期间访问被拒绝,则newTransformer(Source)将被抛出newTransformer(Source)方法。通过XSLT文档功能访问外部文档仅限于属性指定的协议。 如果由于此属性的限制,在转换期间访问被拒绝,则
Transformer.transform(Source, Result)将被抛出Transformer.transform(Source, Result)方法。
- 参数
-
name- 属性的名称。 -
value- 属性的值。 - 异常
-
IllegalArgumentException- 当实现不识别属性时。
-
getAttribute
public abstract Object getAttribute(String name)
允许用户检索底层实现的特定属性。 如果底层的实现不能识别属性,则抛出一个IllegalArgumentException。- 参数
-
name- 属性的名称。 - 结果
- value属性的值。
- 异常
-
IllegalArgumentException- 当实现不识别属性时。
-
setErrorListener
public abstract void setErrorListener(ErrorListener listener)
设置TransformerFactory的错误事件侦听器,它用于处理转换指令,而不是转换本身。 一个IllegalArgumentException如果抛出ErrorListener监听器是null。- 参数
-
listener- 新的错误侦听器。 - 异常
-
IllegalArgumentException- 当listener是null
-
getErrorListener
public abstract ErrorListener getErrorListener()
获取TransformerFactory的错误事件处理程序。- 结果
- The current error handler, which should never be null.
-
-