Module  java.xml
软件包  javax.xml.transform

Class TransformerFactory

  • 已知直接子类:
    SAXTransformerFactory


    public abstract class TransformerFactory
    extends Object

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

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

    从以下版本开始:
    1.5
    • 构造方法详细信息

      • TransformerFactory

        protected TransformerFactory​()
        默认构造函数是有意保护的。
    • 方法详细信息

      • 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 - 如果 factoryClassNamenull ,或者工厂类无法加载,实例化。
        从以下版本开始:
        1.6
        另请参见:
        newInstance()
      • 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获取与XML Source文档关联的样式表规范。 请注意,可以返回多个样式表,在这种情况下,它们应用为单个样式表中的导入或级联列表。
        参数
        source - XML源文档。
        media - 要匹配的媒体属性。 可能为null,在这种情况下,将使用优先模板(即alternate = no)。
        title - 要匹配的title属性的值。 可能为null。
        charset - 要匹配的字符集属性的值。 可能为null。
        结果
        A Source Object适合传递给 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

        设置此工厂创建的TransformerFactoryTransformer s或Template的功能。

        功能名称完全合格URI秒。 实现可以定义自己的特征。 如果这个TransformerFactory或其创建的TransformerTransformerFactoryTransformer s或Template s不能支持该功能,则抛出一个TransformerConfigurationException TransformerFactory可以公开特征值,但是无法更改其状态。

        所有实现都需要支持XMLConstants.FEATURE_SECURE_PROCESSING功能。 当功能是:

        参数
        name - 功能名称。
        value - 是功能状态 truefalse
        异常
        TransformerConfigurationException - 如果这个 TransformerFactory或其创建的 Transformer或者 Template s不能支持此功能。
        NullPointerException - 如果 name参数为空。
      • getFeature

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

        功能名称完全合格URI s。 实现可以定义自己的特征。 false返回如果TransformerFactory或者Transformer S或Template的IT创建不支持该功能。 TransformerFactory可以公开特征值,但无法更改其状态。

        参数
        name - 功能名称。
        结果
        当前状态的功能, truefalse
        异常
        NullPointerException - 如果 name参数为空。
      • getAttribute

        public abstract Object getAttribute​(String name)
        允许用户检索底层实现的特定属性。 如果底层的实现不能识别属性,则抛出一个IllegalArgumentException
        参数
        name - 属性的名称。
        结果
        value属性的值。
        异常
        IllegalArgumentException - 当实现不识别属性时。
      • setErrorListener

        public abstract void setErrorListener​(ErrorListener listener)
        设置TransformerFactory的错误事件侦听器,它用于处理转换指令,而不是转换本身。 一个IllegalArgumentException如果抛出ErrorListener监听器是null
        参数
        listener - 新的错误侦听器。
        异常
        IllegalArgumentException - 当 listenernull
      • getErrorListener

        public abstract ErrorListener getErrorListener​()
        获取TransformerFactory的错误事件处理程序。
        结果
        The current error handler, which should never be null.