public abstract class TransformerFactory extends Object
TransformerFactory实例可用于创建Transformer和Templates对象。
确定要创建哪个Factory实现的系统属性命名为"javax.xml.transform.TransformerFactory" 。 该属性命名为TransformerFactory抽象类的具体子类。 如果未定义属性,则使用平台默认值。
| Modifier | Constructor and Description |
|---|---|
protected |
TransformerFactory()
默认构造函数是有意保护的。
|
| Modifier and Type | Method and Description |
|---|---|
abstract Source |
getAssociatedStylesheet(Source source, String media, String title, String charset)
|
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)
将源处理为一个Templates对象,它是源的编译表示。
|
abstract Transformer |
newTransformer()
创建一个新的
Transformer ,执行
Source到
Result 。
|
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)
设置此工厂创建的
TransformerFactory和
Transformer s或
Template的功能。
|
abstract void |
setURIResolver(URIResolver resolver)
设置在转换期间默认使用的对象,以解析document(),xsl:import或xsl:include中使用的URI。
|
public static TransformerFactory newInstance() throws TransformerFactoryConfigurationError
获得一个新的TransformerFactory实例。 这个静态方法创建一个新的工厂实例。
此方法使用以下有序查找过程来确定要加载的TransformerFactory实现类:
javax.xml.transform.TransformerFactory系统属性。 java.util.Properties格式,包含实现类的完全限定名称,其中键为上面定义的系统属性。 ServiceLoader类定义的服务提供商加载工具,使用default loading mechanism尝试定位和加载服务的实现 :服务提供商加载工具将使用current thread's context class loader尝试加载服务。 如果上下文类加载器为null, 那么将使用system class loader 。 一旦应用程序获得了对TransformerFactory的TransformerFactory就可以使用工厂来配置和获取变压器实例。
TransformerFactoryConfigurationError -抛出的情况下service configuration error或者如果实现不可用或不能被实例化。
public static TransformerFactory newInstance(String factoryClassName, ClassLoader classLoader) throws TransformerFactoryConfigurationError
从工厂类名称获取一个新的实例TransformerFactory 。 在类路径中有多个提供程序时,此功能很有用。 它可以更好地控制应用程序,因为它可以指定应该加载哪个提供程序。
一旦应用程序获得了对TransformerFactory的TransformerFactory就可以使用工厂来配置和获取变压器实例。
设置jaxp.debug系统属性将导致此方法打印大量调试消息到System.err有关它在做什么和它在哪里看。
如果您有问题,请尝试:
java -Djaxp.debug=1 YourProgram ....
factoryClassName -完全限定工厂类名称,提供实施
javax.xml.transform.TransformerFactory 。
classLoader - ClassLoader用于加载工厂类。
如果null当前的Thread的上下文classLoader用于加载工厂类。
TransformerFactoryConfigurationError - 如果
factoryClassName是
null ,或工厂类无法加载,实例化。
newInstance()
public abstract Transformer newTransformer(Source source) throws TransformerConfigurationException
将Source成Transformer Object 。 Source是符合XSL Transformations (XSLT) Version 1.0的XSLT文档。 必须注意不要使用这种Transformer多个Thread小号同时运行。 不同的TransformerFactories可以同时使用不同的Thread s。
source - Source的XSLT文档用于创建Transformer 。
XML的例子Source小号包括DOMSource , SAXSource和StreamSource 。
Transformer对象,可用于在单个
Thread中执行
Thread ,从不
null 。
TransformerConfigurationException - 如果在解析
Source时出现错误或者无法创建
Transformer实例,则
Transformer 。
public abstract Transformer newTransformer() throws TransformerConfigurationException
创建一个新的Transformer ,执行Source的Result 。 即“ 身份转换 ”。
TransformerConfigurationException - 当无法创建
Transformer实例时。
public abstract Templates newTemplates(Source source) throws TransformerConfigurationException
source - 保存URL,输入流等的对象
null 。
TransformerConfigurationException - 解析构造Templates对象失败。
public abstract Source getAssociatedStylesheet(Source source, String media, String title, String charset) throws TransformerConfigurationException
通过符合给定条件的xml-stylesheet processing instruction获取与XML Source文档相关联的样式Source规范。 请注意,可以返回多个样式表,在这种情况下,它们应用为单个样式表中的导入或级联列表。
source - XML源文档。
media - 要匹配的媒体属性。
可能为null,在这种情况下,将使用优先模板(即alternate = no)。
title - 要匹配的title属性的值。
可能为null。
charset - 要匹配的字符集属性的值。
可能为null。
Source
Object适合传递给
TransformerFactory 。
TransformerConfigurationException -一个
异常是的分析过程中,如果出现错误occurings抛出
source 。
public abstract void setURIResolver(URIResolver resolver)
resolver - 实现URIResolver接口的对象,或null。
public abstract URIResolver getURIResolver()
public abstract void setFeature(String name, boolean value) throws TransformerConfigurationException
为这个工厂创建的TransformerFactory和Transformer s或Template设置了一个功能。
功能名称完全符合URI s。 实现可以定义自己的特征。 如果这个TransformerFactory或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 s或
Template它创建不能支持此功能。
NullPointerException - 如果
name参数为空。
public abstract boolean getFeature(String name)
功能名称完全符合URI s。 实现可以定义自己的特征。 false返回如果这TransformerFactory或Transformer S或Template的IT创建不支持该功能。 TransformerFactory可以公开特征值,但无法更改其状态。
name - 功能名称。
true或
false 。
NullPointerException - 如果
name参数为空。
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属性指定的协议 。 如果由于此属性的限制,在创建新变压器期间访问被拒绝, TransformerConfigurationException将被抛出newTransformer(Source)方法。
通过样式表处理指令访问外部引用集,导入和包含元素仅限于XMLConstants.ACCESS_EXTERNAL_STYLESHEET属性指定的协议 。 如果由于此属性的限制,在创建新变压器期间访问被拒绝, TransformerConfigurationException将被newTransformer(Source)方法抛出。
通过XSLT文档功能访问外部文档仅限于属性指定的协议。 如果由于此属性的限制,在转换期间访问被拒绝, TransformerException将被抛出Transformer.transform(Source, Result)方法。
name - 属性的名称。
value - 属性的值。
IllegalArgumentException - 实现时不识别属性。
public abstract Object getAttribute(String name)
IllegalArgumentException如果底层实现不识别该属性,则抛出。
name - 属性的名称。
IllegalArgumentException - 当实现不识别属性时。
public abstract void setErrorListener(ErrorListener listener)
IllegalArgumentException如果抛出ErrorListener监听器是null 。
listener - 新的错误侦听器。
IllegalArgumentException -
listener为
null
public abstract ErrorListener getErrorListener()
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.