- すべての実装されたインタフェース:
AlgorithmMethod
,Transform
,XMLStructure
TransformService
の各インスタンスは、特定の変換アルゴリズムまたは正規化アルゴリズムおよびXMLメカニズム型をサポートします。 TransformService
を作成するには、static getInstance
メソッドの1つを呼び出し、目的のアルゴリズムURIおよびXMLメカニズム型を渡します。たとえば:
TransformService ts = TransformService.getInstance(Transform.XPATH2, "DOM");
TransformService
実装は、Provider
メカニズムを使用して登録およびロードされます。 各TransformService
のサービス・プロバイダ実装は、サポートするXMLメカニズム型を特定するMechanismType
サービス属性を含む必要があります。 属性が指定されない場合、"DOM"であると想定されます。 たとえば、XPath Filter 2 TransformおよびDOMメカニズムをサポートするサービス・プロバイダはProvider
サブクラスで次のように指定されます。
put("TransformService." + Transform.XPATH2, "org.example.XPath2TransformService"); put("TransformService." + Transform.XPATH2 + " MechanismType", "DOM");
TransformService
DOMメカニズム・タイプをサポートする実装は、「DOMのメカニズム要件」に定義されているDOM相互運用性要件を遵守する必要があります。 標準のアルゴリズムUriとメカニズム・タイプのリストは、「Javaセキュリティ標準アルゴリズム名仕様」のTransformService
のセクションを参照してください。
TransformService
が作成されると、それを使用してTransform
オブジェクトまたはCanonicalizationMethod
オブジェクトを処理できます。 XML形式の中にTransform
またはCanonicalizationMethod
が存在する場合(たとえば、既存のXMLSignature
を検証するとき)、init(XMLStructure, XMLCryptoContext)
メソッドを最初に呼び出して変換を初期化し、文書コンテキストを提供する必要があります(パラメータがない場合でも)。 あるいは、Transform
またはCanonicalizationMethod
がゼロから作成される場合、init(TransformParameterSpec)
メソッドが呼び出されて変換がパラメータ付きで初期化され、marshalParams
メソッドが呼び出されてXMLへのパラメータが整列化され、文書コンテキストでの変換が提供されます。 最後に、transform
メソッドが呼び出されて変換を実行します。
並行アクセス
このクラスのstaticメソッドは、スレッド・セーフであることが保証されています。 このクラスで定義されているstaticメソッドは、悪影響を与えることなく、複数スレッドが並行して呼び出すことができます。
しかしこのことは、このクラスで定義されている非staticメソッドには当てはまりません。 特定のプロバイダで特に説明がないかぎり、単一のTransformService
インスタンスに並行してアクセスする必要のある複数スレッドは、スレッド間で同期を取り、必要に応じてロックしなければいけません。 異なるTransformService
インスタンスを操作する複数スレッドは、同期化される必要はありません。
- 導入されたバージョン:
- 1.6
-
フィールドのサマリー
-
コンストラクタのサマリー
-
メソッドのサマリー
修飾子と型メソッド説明final String
このTransformService
がサポートするアルゴリズムのURIを返します。static TransformService
getInstance
(String algorithm, String mechanismType) 指定されたアルゴリズムURI (例:Transform.XPATH2
)およびメカニズム型(例: DOM)をサポートするTransformService
を返します。static TransformService
getInstance
(String algorithm, String mechanismType, String provider) 指定したプロバイダが提供する、指定されたアルゴリズムURI (例:Transform.XPATH2
)およびメカニズム型(例: DOM)をサポートするTransformService
を返します。static TransformService
getInstance
(String algorithm, String mechanismType, Provider provider) 指定したプロバイダが提供する、指定されたアルゴリズムURI (例:Transform.XPATH2
)およびメカニズム型(例: DOM)をサポートするTransformService
を返します。final String
このTransformService
がサポートするメカニズム型を返します。final Provider
このTransformService
のプロバイダを返します。abstract void
init
(TransformParameterSpec params) 指定されたパラメータでこのTransformService
を初期化します。abstract void
init
(XMLStructure parent, XMLCryptoContext context) 指定されたパラメータおよび文書コンテキストでこのTransformService
を初期化します。abstract void
marshalParams
(XMLStructure parent, XMLCryptoContext context) アルゴリズム固有のパラメータを整列化します。クラスjava.lang.Objectで宣言されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
インタフェースjavax.xml.crypto.dsig.Transformで宣言されたメソッド
getParameterSpec, transform, transform
インタフェースjavax.xml.crypto.XMLStructureで宣言されたメソッド
isFeatureSupported
-
コンストラクタの詳細
-
TransformService
protected TransformService()デフォルトのコンストラクタ、サブクラスによる呼出し用。
-
-
メソッドの詳細
-
getInstance
public static TransformService getInstance(String algorithm, String mechanismType) throws NoSuchAlgorithmException 指定されたアルゴリズムURI (例:Transform.XPATH2
)およびメカニズム型(例: DOM)をサポートするTransformService
を返します。このメソッドは標準JCAプロバイダ検索メカニズムを使用して、目的のアルゴリズムおよび
MechanismType
サービス属性のTransformService
実装を検出およびインスタンス化します。 登録済みのセキュリティProvider
のリストを、最優先のProvider
からトラバースします。 指定したアルゴリズムおよびメカニズム型をサポートする最初のProvider
からの新しいTransformService
オブジェクトが返されます。登録済みプロバイダのリストは、
Security.getProviders()
メソッド経由で取得できます。- 実装上のノート:
- JDKリファレンス実装では、さらに
jdk.security.provider.preferred
Security
プロパティを使用して、指定したアルゴリズムの優先プロバイダ順序を決定します。 これは、Security.getProviders()
によって返されるプロバイダの順序とは異なる場合があります。 - パラメータ:
algorithm
- アルゴリズムのURI 標準変換アルゴリズムのリストについては、「Javaセキュリティ標準アルゴリズム名仕様」のTransformService
の項を参照してください。mechanismType
- XML処理メカニズムおよび表現の型。 標準メカニズムのタイプのリストは、「Javaセキュリティ標準アルゴリズム名仕様」のTransformService
のセクションを参照してください。- 戻り値:
- 新しい
TransformService
- 例外:
NullPointerException
-algorithm
またはmechanismType
がnull
の場合NoSuchAlgorithmException
- 指定したアルゴリズムやメカニズム型用のTransformService
実装をサポートするProvider
が存在しない場合- 関連項目:
-
getInstance
public static TransformService getInstance(String algorithm, String mechanismType, Provider provider) throws NoSuchAlgorithmException 指定したプロバイダが提供する、指定されたアルゴリズムURI (例:Transform.XPATH2
)およびメカニズム型(例: DOM)をサポートするTransformService
を返します。 指定したProvider
オブジェクトは、プロバイダ・リストに登録する必要はありません。- パラメータ:
algorithm
- アルゴリズムのURI 標準変換アルゴリズムのリストについては、「Javaセキュリティ標準アルゴリズム名仕様」のTransformService
の項を参照してください。mechanismType
- XML処理メカニズムおよび表現の型。 標準メカニズムのタイプのリストは、「Javaセキュリティ標準アルゴリズム名仕様」のTransformService
のセクションを参照してください。provider
-Provider
オブジェクト- 戻り値:
- 新しい
TransformService
- 例外:
NullPointerException
-provider
、algorithm
、またはmechanismType
がnull
の場合NoSuchAlgorithmException
- 指定したアルゴリズムやメカニズム型用のTransformService
実装が、指定したProvider
オブジェクトで使用できない場合- 関連項目:
-
getInstance
public static TransformService getInstance(String algorithm, String mechanismType, String provider) throws NoSuchAlgorithmException, NoSuchProviderException 指定したプロバイダが提供する、指定されたアルゴリズムURI (例:Transform.XPATH2
)およびメカニズム型(例: DOM)をサポートするTransformService
を返します。 指定したプロバイダは、セキュリティ・プロバイダ・リストに登録する必要があります。登録済みプロバイダのリストは、
Security.getProviders()
メソッド経由で取得できます。- パラメータ:
algorithm
- アルゴリズムのURI 標準変換アルゴリズムのリストについては、「Javaセキュリティ標準アルゴリズム名仕様」のTransformService
の項を参照してください。mechanismType
- XML処理メカニズムおよび表現の型。 標準メカニズムのタイプのリストは、「Javaセキュリティ標準アルゴリズム名仕様」のTransformService
のセクションを参照してください。provider
- プロバイダ名の文字列名- 戻り値:
- 新しい
TransformService
- 例外:
NoSuchProviderException
- 指定されたプロバイダがセキュリティ・プロバイダ・リストに登録されていない場合NullPointerException
-provider
、mechanismType
、またはalgorithm
がnull
の場合NoSuchAlgorithmException
- 指定したアルゴリズムやメカニズム型用のTransformService
実装が指定したプロバイダで使用できない場合- 関連項目:
-
getMechanismType
public final String getMechanismType()このTransformService
がサポートするメカニズム型を返します。- 戻り値:
- メカニズム型
-
getAlgorithm
public final String getAlgorithm()このTransformService
がサポートするアルゴリズムのURIを返します。- 定義:
getAlgorithm
、インタフェースAlgorithmMethod
- 戻り値:
- アルゴリズムURI
-
getProvider
public final Provider getProvider()このTransformService
のプロバイダを返します。- 戻り値:
- プロバイダ
-
init
public abstract void init(TransformParameterSpec params) throws InvalidAlgorithmParameterException 指定されたパラメータでこのTransformService
を初期化します。XML形式の中にパラメータが存在する場合、
init(XMLStructure, XMLCryptoContext)
メソッドを使用してTransformService
を初期化する必要があります。- パラメータ:
params
- アルゴリズム・パラメータ。必須でない場合またはオプションの場合はnull
も可- 例外:
InvalidAlgorithmParameterException
- 指定されたパラメータがこのアルゴリズムには無効な場合
-
marshalParams
public abstract void marshalParams(XMLStructure parent, XMLCryptoContext context) throws MarshalException アルゴリズム固有のパラメータを整列化します。 整列化するパラメータがない場合、このメソッドは例外をスローせずに返します。- パラメータ:
parent
- 整列化されたパラメータが追加される親ノードを格納する、メカニズム固有の構造context
- 追加のコンテキストを格納するXMLCryptoContext
。該当しない場合はnull
も可- 例外:
ClassCastException
-parent
またはcontext
の型がこのTransformService
と互換性がない場合NullPointerException
-parent
がnull
である場合MarshalException
- パラメータを整列化できない場合
-
init
public abstract void init(XMLStructure parent, XMLCryptoContext context) throws InvalidAlgorithmParameterException 指定されたパラメータおよび文書コンテキストでこのTransformService
を初期化します。- パラメータ:
parent
- 親構造を格納するメカニズム固有の構造context
- 追加のコンテキストを格納するXMLCryptoContext
。該当しない場合はnull
も可- 例外:
ClassCastException
-parent
またはcontext
の型がこのTransformService
と互換性がない場合NullPointerException
-parent
がnull
である場合InvalidAlgorithmParameterException
- 指定されたパラメータがこのアルゴリズムには無効な場合
-