javax.xml.transform

接口
异常
错误
java.lang.Object
  继承者 javax.xml.transform.TransformerFactory
直接已知子类:
SAXTransformerFactory

public abstract class TransformerFactory
     
extends Object

TransformerFactory 实例可用于创建 TransformerTemplates 对象。

确定要创建的哪一个 Factory 实现被命名为 "javax.xml.transform.TransformerFactory" 的系统属性。此属性命名了 TransformerFactory 抽象类的一个具体子类。如果未定义此属性,则使用平台默认的属性。


构造方法摘要
protected TransformerFactory()
          默认构造方法受到有意保护。
 
方法摘要
abstract  Source getAssociatedStylesheet(Source source, String media, String title, String charset)
          通过与给定标准匹配的 xml 样式表的处理指令 获取与 XML Source 文档关联的样式表规范(或多个规范)。
abstract  Object getAttribute(String name)
          允许用户在底层实现上检索指定属性。
abstract  ErrorListener getErrorListener()
          获取 TransformerFactory 的错误事件处理程序。
abstract  boolean getFeature(String name)
          查找功能值。
abstract  URIResolver getURIResolver()
          获取在转换过程中默认用于解析 document()、xsl:import 或 xsl:include 中所使用的 URI 的对象。
static TransformerFactory newInstance()
          获取 TransformerFactory 的新实例。
static TransformerFactory newInstance(String factoryClassName, ClassLoader classLoader)
          根据类名称获得一个新 TransformerFactory 实例。
abstract  Templates newTemplates(Source source)
          将 Source 处理为 Templates 对象,后者是源的编译后表示形式。
abstract  Transformer newTransformer()
          创建执行从 SourceResult 的复制的新 Transformer
abstract  Transformer newTransformer(Source source)
          将 Source 处理为 Transformer Object
abstract  void setAttribute(String name, Object value)
          允许用户设置底层实现上的指定属性。
abstract  void setErrorListener(ErrorListener listener)
          设置此 TransformerFactory 的错误事件侦听器,它将用于转换指令的处理,而不用于转换本身。
abstract  void setFeature(String name, boolean value)
          设置通过此工厂创建的此 TransformerFactoryTransformerTemplate 的功能。
abstract  void setURIResolver(URIResolver resolver)
          设置在转换过程中默认用于解析 document()、xsl:import 或 xsl:include 中所使用的 URI 的对象。
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

构造方法详细信息

TransformerFactory

protected TransformerFactory()
默认构造方法受到有意保护。

方法详细信息

newInstance

public static TransformerFactory newInstance()
                                      throws TransformerFactoryConfigurationError

获取 TransformerFactory 的新实例。此静态方法创建新的工厂实例。此方法使用以下顺序的查找程序来确定要加载的 TransformerFactory 实现类:

  • 使用 javax.xml.transform.TransformerFactory 系统属性。
  • 使用 JRE 文件夹中的属性文件 "lib/jaxp.properties"。此配置文件格式为标准的 java.util.Properties 且包含实现类的完全限定名,其中实现类的键是上述定义的系统属性。 JAXP 实现只读取一次 jaxp.properties 文件,然后缓存其值供以后使用。如果首次尝试读取文件时,文件不存在,则不会再次尝试检查该文件是否存在。首次读取 jaxp.properties 后,其中的属性值不能再更改。
  • 如果 Services API(在 JAR 规范中进行了详细描述)可用,可以使用它来确定类名称。Services API 将查找在运行时可用的 jar 文件中 META-INF/services/javax.xml.transform.TransformerFactory 中的类名称。
  • 平台默认的 TransformerFactory 实例。

在应用程序已获取对 TransformerFactory 的引用后,它可以使用工厂来配置和获取转换器实例。

返回:
新的 TransformerFactory 实例,永远不能为 null。
抛出:
TransformerFactoryConfigurationError - 如果实现不可用或不能被实例化。

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 - 如果 factoryClassNamenull,或者不能加载或实例化工厂类。
从以下版本开始:
1.6
另请参见:
newInstance()

newTransformer

public abstract Transformer newTransformer(Source source)
                                    throws TransformerConfigurationException

Source 处理为 Transformer ObjectSource 是遵守 XSL Transformations (XSLT) Version 1.0 的 XSLT 文档。必须注意的是,在多个 Thread 并发运行中不能使用此 Transformer。不同 Thread 可以并发使用不同的 TransformerFactories

参数:
用于创建 - Transformer 的 XSLT 文档的源 Source。XML Source 的示例包括 DOMSourceSAXSourceStreamSource
返回:
可用于在单个 Thread 中执行转换的 Transformer 对象,永远不能返回 null
抛出:
TransformerConfigurationException - 如果当解析 Source 时发生错误,或不能创建 Transformer 实例。
另请参见:
XSL Transformations (XSLT) Version 1.0

newTransformer

public abstract Transformer newTransformer()
                                    throws TransformerConfigurationException

创建执行从 SourceResult 的复制的新 Transformer。即 "identity transform"。

返回:
可用于在单个进程中执行转换的 Transformer 对象,永远不能返回 null。
抛出:
TransformerConfigurationException - 当不能创建 Transformer 实例时。

newTemplates

public abstract Templates newTemplates(Source source)
                                throws TransformerConfigurationException
将 Source 处理为 Templates 对象,后者是源的编译后表示形式。然后此 Templates 对象可由多个线程并发使用。创建 Templates 对象允许 TransformerFactory 执行转换指令的详细性能优化,而不影响运行时转换。

参数:
source - 保持 URL、输入流等的对象。
返回:
可用于转换目的的 Templates 对象,永远不能返回 null
抛出:
TransformerConfigurationException - 当对构造 Templates 对象进行解析失败时。

getAssociatedStylesheet

public abstract Source getAssociatedStylesheet(Source source,
                                               String media,
                                               String title,
                                               String charset)
                                        throws TransformerConfigurationException

通过与给定标准匹配的 xml 样式表的处理指令 获取与 XML Source 文档关联的样式表规范(或多个规范)。注意,可能返回几个样式表,在这种情况下它们作为导入列表或单个样式表中的层叠列表来使用。

参数:
source - XML 源文档。
media - 要匹配的介质属性。可以为 null,此时将使用首选的 template(即 alternate = no)。
title - 要匹配的标题属性值。可以为 null。
charset - 要匹配的字符集属性值。可以为 null。
返回:
适合传递给 TransformerFactorySource Object
抛出:
TransformerConfigurationException - 如果 source 的解析过程中发生错误,则抛出 Exception
另请参见:
与 1.0 版本的 XML 文档关联的样式表

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

设置通过此工厂创建的此 TransformerFactoryTransformerTemplate 的功能。

功能名称是完全限定的 URI。实现可以定义它们自己的功能。如果它创建的此 TransformerFactoryTransformerTemplate 不支持该功能,则抛出 TransformerConfigurationExceptionTransformerFactory 可以公开功能值,但不能更改其状态。

所有实现必须支持 XMLConstants.FEATURE_SECURE_PROCESSING 功能。当功能为以下情况时:

参数:
name - 功能名称。
value - 功能状态为 truefalse
抛出:
TransformerConfigurationException - 如果它创建的此 TransformerFactoryTransformerTemplate 不支持此功能。
NullPointerException - 如果 name 参数为 null。

getFeature

public abstract boolean getFeature(String name)
查找功能值。

功能名称为完全限定的 URI。实现可以定义其自己的功能。如果其创建的 TransformerFactoryTransformerTemplate 不支持该功能,则返回 falseTransformerFactory 可以公开功能值,但不能更改其状态。

参数:
name - 功能名称。
返回:
功能的当前状态, truefalse
抛出:
NullPointerException - 如果 name 参数为 null。

setAttribute

public abstract void setAttribute(String name,
                                  Object value)
允许用户设置底层实现上的指定属性。此上下文中的属性定义为实现所提供的一个选项。如果底层实现不识别该属性,则抛出 IllegalArgumentException

参数:
name - 属性名称。
value - 属性值。
抛出:
IllegalArgumentException - 当实现不能识别属性时。

getAttribute

public abstract Object getAttribute(String name)
允许用户在底层实现上检索指定属性。如果底层实现不识别该属性,则抛出 IllegalArgumentException

参数:
name - 属性名称。
value - 属性值。
抛出:
IllegalArgumentException - 当实现不能识别属性时。

setErrorListener

public abstract void setErrorListener(ErrorListener listener)
设置此 TransformerFactory 的错误事件侦听器,它将用于转换指令的处理,而不用于转换本身。如果 ErrorListener 侦听器为 null,则抛出 IllegalArgumentException

参数:
listener - 新错误侦听器。
抛出:
IllegalArgumentException - 当 listenernull 时。

getErrorListener

public abstract ErrorListener getErrorListener()
获取 TransformerFactory 的错误事件处理程序。

返回:
当前错误处理程序,它永远不应为 null。