モジュール java.xml
パッケージ javax.xml.transform

クラスTransformerFactory

  • 直系の既知のサブクラス:
    SAXTransformerFactory

    public abstract class TransformerFactory
    extends Object

    TransformerFactoryインスタンスを使用して、TransformerおよびTemplatesオブジェクトを作成できます。

    どのファクトリ実装を作成するかを決めるシステム・プロパティの名前は"javax.xml.transform.TransformerFactory"です。 このプロパティは、TransformerFactory abstractクラスの具象サブクラスを命名します。 このプロパティが定義されていない場合は、プラットフォームのデフォルトが使用されます。

    導入されたバージョン:
    1.5
    • コンストラクタのサマリー

      コンストラクタ 
      修飾子 コンストラクタ 説明
      protected TransformerFactory()
      デフォルトのコンストラクタが意図的に保護されます。
    • メソッドのサマリー

      修飾子と型 メソッド 説明
      abstract Source getAssociatedStylesheet​(Source source, String media, String title, String charset)
      The xml-stylesheet processing instruction」から、指定された基準に一致する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 newDefaultInstance()
      TransformerFactory組み込みシステムのデフォルト実装の新しいインスタンスを作成します。
      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)
      SourceTransformer Objectに処理します。
      abstract void setAttribute​(String name, Object value)
      ユーザーがベースとなる実装に特定の属性を設定できるようにします。
      abstract void setErrorListener​(ErrorListener listener)
      TransformerFactoryのエラー・イベント・リスナーを設定します。TransformerFactoryは、変換自体のためではなく、変換命令を処理するために使用されます。
      abstract void setFeature​(String name, boolean value)
      このファクトリによって生成されたTransformerFactoryおよびTransformerまたはTemplateの機能を設定します。
      abstract void setURIResolver​(URIResolver resolver)
      document()、xsl:import、またはxsl:includeで使用されるURIを解決するために変換時にデフォルトで使用されるオブジェクトを設定します。
    • コンストラクタの詳細

      • TransformerFactory

        protected TransformerFactory()
        デフォルトのコンストラクタが意図的に保護されます。
    • メソッドの詳細

      • newDefaultInstance

        public static TransformerFactory newDefaultInstance()
        TransformerFactory組み込みシステムのデフォルト実装の新しいインスタンスを作成します。
        戻り値:
        TransformerFactory組み込みシステムのデフォルト実装の新しいインスタンス。
        導入されたバージョン:
        9
      • newInstance

        public static TransformerFactory newInstance()
                                              throws TransformerFactoryConfigurationError
        TransformerFactoryの新しいインスタンスを取得します。 このstaticメソッドは新しいファクトリ・インスタンスを作成します。

        このメソッドは次の順序の検索手順で、ロードするTransformerFactory実装クラスを決定します。

        • javax.xml.transform.TransformerFactoryシステム・プロパティを使用する。
        • 構成ファイル"jaxp.properties"を使用します。 このファイルは標準のProperties形式であり、通常Javaインストールのconfディレクトリにあります。 これには、実装クラスの完全修飾名が格納されています。

          jaxp.propertiesファイルはJAXP実装によって一度だけ読み込まれ、その値は将来の使用のためにキャッシュされます。 最初の読込み時にファイルが存在しないと、そのあとにその存在がチェックされることはない。 最初に読み込まれたあと、jaxp.propertiesのプロパティの値を変更することはできない。

        • ServiceLoaderクラスで定義されているサービス・プロバイダ・ローディング機能を使用して、デフォルトのロード・メカニズムを使用してサービスの実装を特定してロード: サービス・プロバイダ・ローディング機能は、現在のスレッド・コンテキスト・クラス・ローダーを使用してサービスをロードしようとします。 コンテキスト・クラス・ローダーがnullの場合、システム・クラス・ローダーが使用されます。

        • それ以外の場合は、system-default実装が返されます。

        アプリケーションがTransformerFactoryへの参照を取得すると、ファクトリを使用してtransformerのインスタンスを構成および取得することができます。

        戻り値:
        新しいTransformerFactoryインスタンス。nullは不可。
        例外:
        TransformerFactoryConfigurationError - サービス構成エラーが発生した場合、または実装が使用できないかインスタンス化できない場合、スローされる。
      • newInstance

        public static TransformerFactory newInstance​(String factoryClassName,
                                                     ClassLoader classLoader)
                                              throws TransformerFactoryConfigurationError
        ファクトリ・クラス名からTransformerFactoryの新しいインスタンスを取得します。 この関数は、クラス・パスに複数のプロバイダがある場合に便利です。 どのプロバイダがロードされるかを指定できるため、アプリケーションをさらに制御できます。

        アプリケーションがTransformerFactoryへの参照を取得すると、ファクトリを使用してtransformerのインスタンスを構成および取得することができます。

        トラブルシューティングのヒント

        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
        SourceTransformer Objectに処理します。 Source「XSL Transformations (XSLT) Version 1.0」に適合するXSLTドキュメントです。 このTransformerは並行して動作する複数のThreadで使用することはできません。 異なるTransformerFactoriesは、異なるThreadによって並行して使用できます。
        パラメータ:
        source - Transformerの作成に使用されるXSLTドキュメントのSource XML Sourceの例には、DOMSourceSAXSource、およびStreamSourceが含まれます。
        戻り値:
        1つのThreadで変換を実行するために使用されるTransformerオブジェクト。nullは不可。
        例外:
        TransformerConfigurationException - Sourceの構文解析時にエラーが発生するか、Transformerインスタンスを作成できない場合にスローされる。
        関連項目:
        XSL Transformations (XSLT) Version 1.0
      • newTransformer

        public abstract Transformer newTransformer()
                                            throws TransformerConfigurationException
        SourceResultへのコピーを実行する新しいTransformer (恒等変換)を作成します。
        戻り値:
        1つのスレッドで変換を実行するために使用される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
        The xml-stylesheet processing instruction」から、指定された基準に一致するXML Sourceドキュメントに関連付けられているスタイル・シート仕様を取得します。 いくつかのスタイルシートを返すことができます。その場合、それらのスタイルシートは、1つのスタイルシート内のインポートまたはカスケードのリストであるかのように適用されます。
        パラメータ:
        source - XMLソース・ドキュメント。
        media - 一致するメディア属性。 nullの場合があり、その場合、設定されているテンプレートが使用される(つまりalternate = no)。
        title - 一致するタイトル属性の値。 nullも可。
        charset - 一致する文字セット属性の値。 nullも可。
        戻り値:
        TransformerFactoryに渡すのに適したSource Object
        例外:
        TransformerConfigurationException - sourceの構文解析時にエラーが発生した場合Exceptionがスローされる。
        関連項目:
        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および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 - 機能の状態がtruefalseか。
        例外:
        TransformerConfigurationException - このTransformerFactoryまたはそれによって作成されるTransformerまたはTemplateがこの機能をサポートできない場合。
        NullPointerException - nameパラメータがnullである場合。
      • getFeature

        public abstract boolean getFeature​(String name)
        機能の値を検索します。

        機能名は完全修飾URIです。 実装が独自の機能を定義することもできます。このTransformerFactory、またはそれが生成するTransformerまたはTemplateがその機能をサポートできない場合は、falseが返されます。 TransformerFactoryは機能の値を表示できますが、その状態を変更することはできません。

        パラメータ:
        name - 機能名。
        戻り値:
        機能の現在の状態。trueまたはfalse
        例外:
        NullPointerException - nameパラメータがnullである場合。
      • setAttribute

        public abstract void setAttribute​(String name,
                                          Object value)
        ユーザーがベースとなる実装に特定の属性を設定できるようにします。 このコンテキストの属性は、実装が提供するオプションとして定義されます。 ベースとなる実装が属性を認識しない場合にIllegalArgumentExceptionがスローされます。

        JAXP 1.5またはそれ以降を実装する実装はすべて、XMLConstants.ACCESS_EXTERNAL_DTDおよびXMLConstants.ACCESS_EXTERNAL_STYLESHEETプロパティをサポートしている必要があります。

        パラメータ:
        name - 属性の名前。
        value - 属性の値。
        例外:
        IllegalArgumentException - 実装が属性を認識しない場合。
      • getAttribute

        public abstract Object getAttribute​(String name)
        ユーザーがベースとなる実装の特定の属性を取り出すことができるようにします。 ベースとなる実装が属性を認識しない場合にIllegalArgumentExceptionがスローされます。
        パラメータ:
        name - 属性の名前。
        戻り値:
        属性の値。
        例外:
        IllegalArgumentException - 実装が属性を認識しない場合。
      • setErrorListener

        public abstract void setErrorListener​(ErrorListener listener)
        TransformerFactoryのエラー・イベント・リスナーを設定します。TransformerFactoryは、変換自体のためではなく、変換命令を処理するために使用されます。 ErrorListenerリスナーがnullの場合はIllegalArgumentExceptionがスローされます。
        パラメータ:
        listener - 新しいエラー・リスナー。
        例外:
        IllegalArgumentException - listenernullの場合
      • getErrorListener

        public abstract ErrorListener getErrorListener()
        TransformerFactoryのエラー・イベント・ハンドラを取得します。
        戻り値:
        現在のエラー・ハンドラ。nullは不可。