public abstract class TransformService extends Object implements Transform
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");
DOMメカニズム型がサポートするTransformService実装は、APIの概要の「DOMメカニズム要件」セクションで定義されているDOM相互運用性の要件に従う必要があります。 標準のメカニズム型のリストについては、APIの概要の「サービス・プロバイダ」セクションを参照してください。
TransformServiceが作成されると、それを使用してTransformオブジェクトまたはCanonicalizationMethodオブジェクトを処理できます。 XML形式の中にTransformまたはCanonicalizationMethodが存在する場合(たとえば、既存のXMLSignatureを検証するとき)、init(XMLStructure, XMLCryptoContext)メソッドを最初に呼び出して変換を初期化し、文書コンテキストを提供する必要があります(パラメータがない場合でも)。 あるいは、TransformまたはCanonicalizationMethodがゼロから作成される場合、init(TransformParameterSpec)メソッドが呼び出されて変換がパラメータ付きで初期化され、marshalParamsメソッドが呼び出されてXMLへのパラメータが整列化され、文書コンテキストでの変換が提供されます。 最後に、transformメソッドが呼び出されて変換を実行します。
並行アクセス
このクラスのstaticメソッドは、スレッド・セーフであることが保証されています。 このクラスで定義されているstaticメソッドは、悪影響を与えることなく、複数スレッドが並行して呼び出すことができます。
しかしこのことは、このクラスで定義されている非staticメソッドには当てはまりません。 特定のプロバイダで特に説明がないかぎり、単一のTransformServiceインスタンスに並行してアクセスする必要のある複数スレッドは、スレッド間で同期を取り、必要に応じてロックしなければいけません。 異なるTransformServiceインスタンスを操作する複数スレッドは、同期化される必要はありません。
| 修飾子 | コンストラクタ | 説明 |
|---|---|---|
protected |
TransformService() |
デフォルトのコンストラクタ、サブクラスによる呼出し用。
|
| 修飾子と型 | メソッド | 説明 |
|---|---|---|
String |
getAlgorithm() |
この
TransformServiceがサポートするアルゴリズムのURIを返します。 |
static TransformService |
getInstance(String algorithm, String mechanismType) |
指定されたアルゴリズムURI (例:
Transform.XPATH2)およびメカニズム型(例: DOM)をサポートするTransformServiceを返します。 |
static TransformService |
getInstance(String algorithm, String mechanismType, Provider provider) |
指定したプロバイダが提供する、指定されたアルゴリズムURI (例:
Transform.XPATH2)およびメカニズム型(例: DOM)をサポートするTransformServiceを返します。 |
static TransformService |
getInstance(String algorithm, String mechanismType, String provider) |
指定したプロバイダが提供する、指定されたアルゴリズムURI (例:
Transform.XPATH2)およびメカニズム型(例: DOM)をサポートするTransformServiceを返します。 |
String |
getMechanismType() |
この
TransformServiceがサポートするメカニズム型を返します。 |
Provider |
getProvider() |
この
TransformServiceのプロバイダを返します。 |
abstract void |
init(TransformParameterSpec params) |
指定されたパラメータでこの
TransformServiceを初期化します。 |
abstract void |
init(XMLStructure parent, XMLCryptoContext context) |
指定されたパラメータおよび文書コンテキストでこの
TransformServiceを初期化します。 |
abstract void |
marshalParams(XMLStructure parent, XMLCryptoContext context) |
アルゴリズム固有のパラメータを整列化します。
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitgetParameterSpec, transform, transformisFeatureSupportedpublic static TransformService getInstance(String algorithm, String mechanismType) throws NoSuchAlgorithmException
Transform.XPATH2)およびメカニズム型(例: DOM)をサポートするTransformServiceを返します。
このメソッドは標準JCAプロバイダ検索メカニズムを使用して、目的のアルゴリズムおよびMechanismTypeサービス属性のTransformService実装を検出およびインスタンス化します。 登録済みのセキュリティProviderのリストを、最優先のProviderからトラバースします。 指定したアルゴリズムおよびメカニズム型をサポートする最初のProviderからの新しいTransformServiceオブジェクトが返されます。
登録済みプロバイダのリストは、Security.getProviders()メソッド経由で取得できます。
algorithm - アルゴリズムのURImechanismType - XML処理メカニズムおよび表現の型TransformServiceNullPointerException - algorithmまたはmechanismTypeがnullの場合NoSuchAlgorithmException - 指定したアルゴリズムやメカニズム型用のTransformService実装をサポートするProviderが存在しない場合Providerpublic static TransformService getInstance(String algorithm, String mechanismType, Provider provider) throws NoSuchAlgorithmException
Transform.XPATH2)およびメカニズム型(例: DOM)をサポートするTransformServiceを返します。 指定したProviderオブジェクトは、プロバイダ・リストに登録する必要はありません。 algorithm - アルゴリズムのURImechanismType - XML処理メカニズムおよび表現の型provider - ProviderオブジェクトTransformServiceNullPointerException - provider、algorithm、またはmechanismTypeがnullの場合NoSuchAlgorithmException - 指定したアルゴリズムやメカニズム型用のTransformService実装が、指定したProviderオブジェクトで使用できない場合Providerpublic static TransformService getInstance(String algorithm, String mechanismType, String provider) throws NoSuchAlgorithmException, NoSuchProviderException
Transform.XPATH2)およびメカニズム型(例: DOM)をサポートするTransformServiceを返します。 指定したプロバイダは、セキュリティ・プロバイダ・リストに登録する必要があります。
登録済みプロバイダのリストは、Security.getProviders()メソッド経由で取得できます。
algorithm - アルゴリズムのURImechanismType - XML処理メカニズムおよび表現の型provider - プロバイダ名の文字列名TransformServiceNoSuchProviderException - 指定されたプロバイダがセキュリティ・プロバイダ・リストに登録されていない場合NullPointerException - provider、mechanismType、またはalgorithmがnullの場合NoSuchAlgorithmException - 指定したアルゴリズムやメカニズム型用のTransformService実装が指定したプロバイダで使用できない場合Providerpublic final String getMechanismType()
TransformServiceがサポートするメカニズム型を返します。public final String getAlgorithm()
TransformServiceがサポートするアルゴリズムのURIを返します。getAlgorithm、インタフェースAlgorithmMethodpublic final Provider getProvider()
TransformServiceのプロバイダを返します。public abstract void init(TransformParameterSpec params) throws InvalidAlgorithmParameterException
TransformServiceを初期化します。
XML形式の中にパラメータが存在する場合、init(XMLStructure, XMLCryptoContext)メソッドを使用してTransformServiceを初期化する必要があります。
params - アルゴリズム・パラメータ。必須でない場合またはオプションの場合はnullも可InvalidAlgorithmParameterException - 指定されたパラメータがこのアルゴリズムには無効な場合public abstract void marshalParams(XMLStructure parent, XMLCryptoContext context) throws MarshalException
parent - 整列化されたパラメータが追加される親ノードを格納する、メカニズム固有の構造context - 追加のコンテキストを格納するXMLCryptoContext。該当しない場合はnullも可ClassCastException - parentまたはcontextの型がこのTransformServiceと互換性がない場合NullPointerException - parentがnullである場合MarshalException - パラメータを整列化できない場合public abstract void init(XMLStructure parent, XMLCryptoContext context) throws InvalidAlgorithmParameterException
TransformServiceを初期化します。parent - 親構造を格納するメカニズム固有の構造context - 追加のコンテキストを格納するXMLCryptoContext。該当しない場合はnullも可ClassCastException - parentまたはcontextの型がこのTransformServiceと互換性がない場合NullPointerException - parentがnullである場合InvalidAlgorithmParameterException - 指定されたパラメータがこのアルゴリズムには無効な場合 バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。 そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2025, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Documentation Redistribution Policyも参照してください。