- すべての実装されたインタフェース:
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
- 指定されたパラメータがこのアルゴリズムには無効な場合
-