public abstract class TransformService extends Object implements Transform
TransformService每个实例TransformService支持特定的转换或规范化算法和XML机制类型。 要创建一个TransformService ,请调用静态getInstance方法之一,传递算法URI和XML机制类型,例如:
TransformService ts = TransformService.getInstance(Transform.XPATH2, "DOM");
TransformService机制注册和加载TransformService实现。 每个TransformService服务提供商实现应包括一个MechanismType服务属性,用于标识其支持的XML机制类型。 如果未指定属性,则假定为“DOM”。 例如,支持XPath Filter 2 Transform和DOM机制的服务提供商将在Provider子类中Provider为:
put("TransformService." + Transform.XPATH2,
"org.example.XPath2TransformService");
put("TransformService." + Transform.XPATH2 + " MechanismType", "DOM");
TransformService支持DOM机制类型的实现必须遵守API概述的DOM Mechanism Requirements部分中定义的DOM互操作性要求。
有关标准机制类型的列表,请参阅API概述的Service Providers部分。
一旦创建了一个TransformService ,它可以用于处理Transform或CanonicalizationMethod对象。 如果Transform或CanonicalizationMethod以XML格式存在(例如,当验证现有的XMLSignature )时,必须首先调用init(XMLStructure, XMLCryptoContext)方法来初始化转换并提供文档上下文(即使没有参数)。 或者,如果从头开始创建Transform或CanonicalizationMethod ,则调用init(TransformParameterSpec)方法以使用参数初始化变换,并调用marshalParams方法将参数编组为XML并提供带文档上下文的转换。 最后,调用transform方法来执行转换。
并发访问
该类的静态方法保证线程安全。 多个线程可以同时调用此类中定义的静态方法,而不会产生不良影响。
但是,对于此类定义的非静态方法,这不是真的。 除非特定提供者另有说明,否则需要同时访问单个TransformService实例的线程应在其间同步并提供必要的锁定。 多个线程每个操作不同的TransformService实例不需要同步。
| Modifier | Constructor and Description |
|---|---|
protected |
TransformService()
默认构造函数,用于由子类调用。
|
| Modifier and Type | Method and Description |
|---|---|
String |
getAlgorithm()
返回此
TransformService支持的算法的URI。
|
static TransformService |
getInstance(String algorithm, String mechanismType)
返回一个
TransformService支持指定算法URI(例如:
Transform.XPATH2 )和机制类型(比如:DOM)。
|
static TransformService |
getInstance(String algorithm, String mechanismType, Provider provider)
返回支持由指定提供
TransformService提供的指定算法URI(例如:
Transform.XPATH2 )和机制类型(例如:DOM)的TransformService。
|
static TransformService |
getInstance(String algorithm, String mechanismType, String provider)
返回支持由指定提供
TransformService提供的指定算法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
TransformService支持指定算法URI(例如: Transform.XPATH2 )和机制类型(比如:DOM)。
此方法使用标准的JCA提供查找机制来查找并实例化TransformService实现期望的算法和MechanismType服务属性。 它通过注册安全性列表Provider s,从最优选的Provider 。 返回支持指定算法和机制类型的第一个Provider新的TransformService对象。
请注意,注册提供商的列表可以通过Security.getProviders()方法检索 。
algorithm -
algorithm的URI
mechanismType - XML处理机制和表示的类型
TransformService
NullPointerException - 如果
algorithm或
mechanismType是
null
NoSuchAlgorithmException -如果没有
Provider支持
TransformService实现指定算法和机制类型
Provider
public static TransformService getInstance(String algorithm, String mechanismType, Provider provider) throws NoSuchAlgorithmException
TransformService提供的指定算法URI(例如: Transform.XPATH2 )和机制类型(例如:DOM)的TransformService。
请注意,指定的Provider对象不必在提供者列表中注册。
algorithm -
algorithm的URI
mechanismType - XML处理机制和表示的类型
provider -
Provider对象
TransformService
NullPointerException -如果
provider ,
algorithm ,或
mechanismType是
null
NoSuchAlgorithmException -如果
TransformService执行指定算法和机制类型不是从指定
Provider对象
Provider
public static TransformService getInstance(String algorithm, String mechanismType, String provider) throws NoSuchAlgorithmException, NoSuchProviderException
TransformService提供的指定算法URI(例如: Transform.XPATH2 )和机制类型(例如:DOM)的TransformService。
指定的提供者必须在安全提供程序列表中注册。
请注意,注册提供商的列表可以通过Security.getProviders()方法检索 。
algorithm -
algorithm的URI
mechanismType - XML处理机制和表示的类型
provider - 提供者的字符串名称
TransformService
NoSuchProviderException - 如果指定的提供程序未在安全提供程序列表中注册
NullPointerException -如果
provider ,
mechanismType ,或
algorithm是
null
NoSuchAlgorithmException -如果
TransformService实现指定算法和机制类型是不能从指定的供应商
Provider
public final String getMechanismType()
TransformService 。
public final String getAlgorithm()
TransformService支持的算法的URI。
getAlgorithm在界面
AlgorithmMethod
public 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不
TransformService
NullPointerException - 如果
parent是
null
MarshalException - 如果参数无法编组
public abstract void init(XMLStructure parent, XMLCryptoContext context) throws InvalidAlgorithmParameterException
TransformService 。
parent - 包含父结构的机制特定结构
context -所述
XMLCryptoContext含有附加上下文(可以是
null如果不适用)
ClassCastException - 如果
parent或
context的类型与此
TransformService不
TransformService
NullPointerException - 如果
parent是
null
InvalidAlgorithmParameterException - 如果指定的参数对于该算法无效
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.