public abstract class TransformerFactory extends Object
TransformerFactoryインスタンスを使用して、Transformer
およびTemplates
オブジェクトを作成できます。
どのファクトリ実装を作成するかを決めるシステム・プロパティの名前は"javax.xml.transform.TransformerFactory"
です。このプロパティは、TransformerFactory
abstractクラスの具象サブクラスを命名します。このプロパティが定義されていない場合は、プラットフォームのデフォルトが使用されます。
修飾子 | コンストラクタと説明 |
---|---|
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 |
newInstance()
TransformerFactory の新しいインスタンスを取得します。 |
static TransformerFactory |
newInstance(String factoryClassName, ClassLoader classLoader)
ファクトリ・クラス名から
TransformerFactory の新しいインスタンスを取得します。 |
abstract Templates |
newTemplates(Source source)
Sourceを処理して、ソースのコンパイル表現であるTemplatesオブジェクトにします。
|
abstract Transformer |
newTransformer()
Source のResult へのコピーを実行する新しいTransformer を作成します。 |
abstract Transformer |
newTransformer(Source source)
Source をTransformer 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を解決するために変換時にデフォルトで使用されるオブジェクトを設定します。
|
public static TransformerFactory newInstance() throws TransformerFactoryConfigurationError
TransformerFactory
の新しいインスタンスを取得します。このstaticメソッドは新しいファクトリ・インスタンスを作成します。
このメソッドは次の順序の検索手順で、ロードするTransformerFactory
実装クラスを決定します。
javax.xml.transform.TransformerFactory
システム・プロパティを使用する。
java.util.Properties
形式であり、上記のように定義されたシステム・プロパティであるキーを持つ実装クラスの完全指定名を含む。ServiceLoader
クラスで定義されているサービス・プロバイダのロード機能を使用して、デフォルトのロード・メカニズムによってサービスの実装の特定およびロードを試みる。サービス・プロバイダのロード機能は、現在のスレッドのコンテキスト・クラス・ローダーを使用してサービスのロードを試みる。コンテキスト・クラス・ローダーがnullの場合、システム・クラス・ローダーが使用されます。
アプリケーションが TransformerFactory
への参照を取得すると、ファクトリを使用してtransformerのインスタンスを構成および取得することができます。
TransformerFactoryConfigurationError
- サービス構成エラーが発生した場合、または実装が使用できないかインスタンス化できない場合、スローされる。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が、ファクトリ・クラスのロードに使用されます。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
によって並行して使用できます。
source
- Transformer
の作成に使用されるXSLTドキュメントのSource
。XML Source
の例には、DOMSource
、SAXSource
、およびStreamSource
が含まれます。Thread
で変換を実行するために使用されるTransformer
オブジェクト。null
は不可。TransformerConfigurationException
- Source
の構文解析時にエラーが発生するか、Transformer
インスタンスを作成できない場合にスローされる。public abstract Transformer newTransformer() throws TransformerConfigurationException
Source
のResult
へのコピーを実行する新しいTransformer
(恒等変換)を作成します。
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
「The xml-stylesheet processing instruction」から、指定された基準に一致するXML Source
ドキュメントに関連付けられているスタイル・シート仕様を取得します。いくつかのスタイルシートを返すことができます。その場合、それらのスタイルシートは、1つのスタイルシート内のインポートまたはカスケードのリストであるかのように適用されます。
source
- XMLソース・ドキュメント。media
- 一致するメディア属性。nullの場合があり、その場合、設定されているテンプレートが使用される(つまりalternate = no)。title
- 一致するタイトル属性の値。nullも可。charset
- 一致する文字セット属性の値。nullも可。TransformerFactory
に渡すのに適したSource
Object
。TransformerConfigurationException
- source
の構文解析時にエラーが発生した場合Exception
がスローされる。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
または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である場合。public abstract boolean getFeature(String name)
機能名は完全指定URI
です。実装が独自の機能を定義することもできます。このTransformerFactory
、またはそれが生成するTransformer
またはTemplate
がその機能をサポートできない場合は、false
が返されます。TransformerFactory
は機能の値を表示できますが、その状態を変更することはできません。
name
- 機能名。true
またはfalse
。NullPointerException
- name
パラメータがnullである場合。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
プロパティで指定されたプロトコルに制限されます。このプロパティの制限が原因で変換中にアクセスが拒否された場合は、Transformer.transform(Source, Result)
によってTransformerException
がスローされます。
スタイル・シート内の外部DTDへのアクセスが、XMLConstants.ACCESS_EXTERNAL_DTD
プロパティで指定されたプロトコルに制限されます。このプロパティの制限が原因で新しいトランスフォーマの作成中にアクセスが拒否された場合は、newTransformer(Source)
メソッドによってTransformerConfigurationException
がスローされます。
スタイル・シートの処理命令、ImportおよびInclude要素によって設定された外部参照へのアクセスが、XMLConstants.ACCESS_EXTERNAL_STYLESHEET
プロパティで指定されたプロトコルに制限されます。このプロパティの制限が原因で新しいトランスフォーマの作成中にアクセスが拒否された場合は、newTransformer(Source)
メソッドによってTransformerConfigurationException
がスローされます。
XSLTドキュメント関数による外部ドキュメントへのアクセスが、そのプロパティで指定されたプロトコルに制限されます。このプロパティの制限が原因で変換中にアクセスが拒否された場合は、Transformer.transform(Source, Result)
メソッドによってTransformerException
がスローされます。
name
- 属性の名前。value
- 属性の値。IllegalArgumentException
- 実装が属性を認識しない場合。public abstract Object getAttribute(String name)
IllegalArgumentException
がスローされます。name
- 属性の名前。IllegalArgumentException
- 実装が属性を認識しない場合。public abstract void setErrorListener(ErrorListener listener)
ErrorListener
リスナーがnull
の場合はIllegalArgumentException
がスローされます。listener
- 新しいエラー・リスナー。IllegalArgumentException
- listener
がnull
の場合public abstract ErrorListener getErrorListener()
バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright© 1993, 2014, Oracle and/or its affiliates. All rights reserved.