- 直接已知的子类:
-
SAXTransformerFactory
TransformerFactory实例可用于创建Transformer和Templates对象。
确定要创建哪个工厂实现的系统属性名为"javax.xml.transform.TransformerFactory"。此属性命名了TransformerFactory抽象类的一个具体子类。如果未定义该属性,则将使用平台默认值。
- 自版本:
- 1.5
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionabstract SourcegetAssociatedStylesheet(Source source, String media, String title, String charset) 通过匹配给定条件,获取与XMLSource文档相关联的样式表规范,通过xml-stylesheet处理指令。abstract ObjectgetAttribute(String name) 允许用户检索底层实现上的特定属性。abstract ErrorListener获取TransformerFactory的错误事件处理程序。abstract booleangetFeature(String name) 查找功能的值。abstract URIResolver获取在转换期间用于解析document()、xsl:import或xsl:include中使用的URI的默认对象。static TransformerFactory创建TransformerFactory内置系统默认实现的新实例。static TransformerFactory获取TransformerFactory的新实例。static TransformerFactorynewInstance(String factoryClassName, ClassLoader classLoader) 从工厂类名获取TransformerFactory的新实例。abstract TemplatesnewTemplates(Source source) 将Source处理为Templates对象,这是源的编译表示。abstract Transformer创建一个新的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和由此工厂创建的Transformer或Template设置一个功能。abstract voidsetURIResolver(URIResolver resolver) 设置在转换期间用于解析document()、xsl:import或xsl:include中使用的URI的默认对象。
-
Constructor Details
-
TransformerFactory
protected TransformerFactory()默认构造函数是有意受保护的。
-
-
Method Details
-
newDefaultInstance
创建TransformerFactory内置系统默认实现的新实例。- 返回:
-
TransformerFactory内置系统默认实现的新实例。 - 自版本:
- 9
-
newInstance
获取TransformerFactory的新实例。此方法使用JAXP查找机制来确定要加载的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的上下文类加载器来加载工厂类。 - 返回:
- 新的TransformerFactory实例,永不为null。
- 抛出:
-
TransformerFactoryConfigurationError- 如果factoryClassName为null,或者无法加载、实例化工厂类。 - 自版本:
- 1.6
- 参见:
-
newTransformer
将Source处理为TransformerObject。Source是符合XSL Transformations (XSLT) Version 1.0的XSLT文档。必须注意不要在多个并发运行的Thread中使用此Transformer。不同的TransformerFactory可以由不同的Thread同时使用。- 参数:
-
source- 用于创建Transformer的XSLT文档的Source。XMLSource的示例包括DOMSource、SAXSource和StreamSource。 - 返回:
-
可用于在单个
Thread中执行转换的Transformer对象,永不为null。 - 抛出:
-
TransformerConfigurationException- 如果解析Source时出现错误或无法创建Transformer实例。 - 参见:
-
newTransformer
创建一个执行Source到Result的复制,即"身份转换"的新Transformer。- 返回:
- 可用于在单个线程中执行转换的Transformer对象,永不为null。
- 抛出:
-
TransformerConfigurationException- 当无法创建Transformer实例时。
-
newTemplates
将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 通过匹配给定条件,获取与XMLSource文档相关联的样式表规范,通过xml-stylesheet处理指令。请注意,可能返回多个样式表,此时它们将被视为单个样式表中的导入或级联列表应用。- 参数:
-
source- XML源文档。 -
media- 要匹配的媒体属性。可能为null,此时将使用首选样式表(即alternate = no)。 -
title- 要匹配的title属性的值。可能为null。 -
charset- 要匹配的charset属性的值。可能为null。 - 返回:
-
适合传递给
TransformerFactory的SourceObject。 - 抛出:
-
TransformerConfigurationException- 如果在解析source期间发生错误,则抛出异常。 - 参见:
-
setURIResolver
设置一个在转换期间用于解析document()、xsl:import或xsl:include中使用的URI的默认对象。- 参数:
-
resolver- 实现URIResolver接口的对象,或null。
-
getURIResolver
获取在转换期间用于解析document()、xsl:import或xsl:include中使用的URI的默认对象。- 返回:
- 使用setURIResolver设置的URIResolver。
-
setFeature
public abstract void setFeature(String name, boolean value) throws TransformerConfigurationException 为此
TransformerFactory和由此工厂创建的Transformer或Template设置一个特性。特性名称是完全限定的
URI。实现可能定义自己的特性。如果这个TransformerFactory或它创建的Transformer或Template不支持该特性,则会抛出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或Template不支持该特性。 -
NullPointerException- 如果name参数为null。
-
getFeature
查找特性的值。特性名称是完全限定的
URI。实现可能定义自己的特性。如果这个TransformerFactory或它创建的Transformer或Template不支持该特性,则返回false。TransformerFactory可能会公开一个特性值,但无法更改其状态。- 参数:
-
name- 特性名称。 - 返回:
-
特性的当前状态,为
true或false。 - 抛出:
-
NullPointerException- 如果name参数为null。
-
setAttribute
允许用户在底层实现上设置特定属性。在此上下文中,属性被定义为实现提供的选项。如果底层实现不识别属性,则会抛出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属性指定的协议的限制。如果由于此属性的限制而在创建新转换器期间拒绝访问,则TransformerConfigurationException将由newTransformer(Source)方法抛出。由样式表处理指令、导入和包含元素设置的外部引用的访问受
XMLConstants.ACCESS_EXTERNAL_STYLESHEET属性指定的协议的限制。如果由于此属性的限制而在创建新转换器期间拒绝访问,则TransformerConfigurationException将由newTransformer(Source)方法抛出。通过XSLT文档函数访问外部文档受属性指定的协议的限制。如果由于此属性的限制而在转换期间拒绝访问,则
TransformerException将由Transformer.transform(Source, Result)方法抛出。
- 参数:
-
name- 属性的名称。 -
value- 属性的值。 - 抛出:
-
IllegalArgumentException- 当实现不识别属性时。
-
-
getAttribute
允许用户在底层实现上检索特定属性。如果底层实现不识别属性,则会抛出IllegalArgumentException。- 参数:
-
name- 属性的名称。 - 返回:
- 值 属性的值。
- 抛出:
-
IllegalArgumentException- 当实现不识别属性时。
-
setErrorListener
为TransformerFactory设置错误事件监听器,用于处理转换指令,而不是转换本身。如果ErrorListener监听器为null,则会抛出IllegalArgumentException。- 参数:
-
listener- 新的错误监听器。 - 抛出:
-
IllegalArgumentException- 当listener为null时。
-
getErrorListener
获取TransformerFactory的错误事件处理程序。- 返回:
- 当前的错误处理程序,永远不应为null。
-