|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
java.lang.Object javax.xml.crypto.dsig.TransformService
public abstract class TransformService
轉換演算法和規範演算法的服務提供者介面。
每個 TransformService
實例都支持一個特定的轉換或規範演算法以及 XML 機制型別。要創建 TransformService
,需要調用一個靜態 getInstance
方法,並傳入所需的演算法 URI 和 XML 機制型別,例如:
TransformService ts = TransformService.getInstance(Transform.XPATH2, "DOM");
使用 Provider
機制來註冊和載入 TransformService
實作。每個 TransformService
服務提供者實作都應該套件括一個 MechanismType
服務屬性,用它來標識所支持的 XML 機制型別。如果未指定該屬性,則假定 XML 機制型別為 “DOM”。例如,支持 XPath Filter 2 Transform 和 DOM 機制的服務提供者將在 Provider
子類別中指定,如下所示:
put("TransformService."+ Transform.XPATH2, "org.example.XPath2TransformService"); put("TransformService."+ Transform.XPATH2 + " MechanismType", "DOM");支持 DOM 機制型別的
TransformService
實作必須遵守 DOM 互操作性要求,正如 API 概觀中 DOM Mechanism Requirements 部分的定義。參見 API 概觀的 Service Providers 部分的標準機制型別列表。
一旦創建了 TransformService
,就可以使用它來處理 Transform
或 CanonicalizationMethod
物件。如果 Transform
或 CanonicalizationMethod
以 XML 形式存在(例如,在驗證現有的 XMLSignature
時),則必須先調用 init(XMLStructure, XMLCryptoContext)
方法來初始化該轉換並提供文檔上下文(即使沒有參數)。此外,如果從頭創建 Transform
或 CanonicalizationMethod
,則將調用 init(TransformParameterSpec)
方法來初始化帶參數的轉換,並調用 marshalParams
方法將參數編組到 XML 且提供帶文檔上下文的轉換。最後,調用 transform
方法來執行轉換。
共時存取
可保證此類別的靜態方法是執行緒安全的。多個執行緒可以共時調用此類別中所定義的靜態方法,而不會產生不良效果。
但是,對於此類別所定義的非靜態方法並非如此。除非具體的提供者另行指定,否則需要共時存取單個 TransformService
實例的多個執行緒應該在它們之間實作同步並提供所需的鎖定。對於每個執行緒都操作一個不同 TransformService
實例的多個執行緒而言,無需實作同步。
欄位摘要 |
---|
從介面 javax.xml.crypto.dsig.Transform 繼承的欄位 |
---|
BASE64, ENVELOPED, XPATH, XPATH2, XSLT |
建構子摘要 | |
---|---|
protected |
TransformService()
預設的建構子,由子類別調用。 |
方法摘要 | |
---|---|
String |
getAlgorithm()
返回此 TransformService 支持的演算法 URI。 |
static TransformService |
getInstance(String algorithm,
String mechanismType)
返回支持指定演算法 URI 的 TransformService (比如:Transform.XPATH2 )和機制型別(比如:DOM)。 |
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)
對特定於演算法的參數進行編組。 |
從類別 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 |
建構子詳細資訊 |
---|
protected TransformService()
方法詳細資訊 |
---|
public static TransformService getInstance(String algorithm, String mechanismType) throws NoSuchAlgorithmException
TransformService
(比如:Transform.XPATH2
)和機制型別(比如:DOM)。
此方法使用標準的 JCA 提供者尋找機制來尋找並實例化所需演算法的 TransformService
實作和 MechanismType
服務屬性。它將從首選的 Provider
開始,遍歷已註冊的安全 Provider
列表。返回取自第一個支持指定演算法和機制型別的 Provider
的新 TransformService
物件。
注意,已註冊提供者的列表可以通過 Security.getProviders()
方法獲得。
algorithm
- 演算法的 URImechanismType
- XML 處理機制和表示形式的型別
TransformService
NullPointerException
- 如果 algorithm
或 mechanismType
為 null
NoSuchAlgorithmException
- 如果沒有 Provider
支持指定演算法和機制型別的 TransformService
實作Provider
public static TransformService getInstance(String algorithm, String mechanismType, Provider provider) throws NoSuchAlgorithmException
Transform.XPATH2
)和機制型別(比如:DOM)的 TransformService
,由指定提供者提供。注意,指定的 Provider
物件不必已經在提供者列表中註冊。
algorithm
- 演算法的 URImechanismType
- XML 處理機制和表示形式的型別provider
- Provider
物件
TransformService
NullPointerException
- 如果 provider
、algorithm
或 mechanismType
為 null
NoSuchAlgorithmException
- 如果不能從指定的 Provider
物件得到指定演算法和機制型別的 TransformService
實作Provider
public static TransformService getInstance(String algorithm, String mechanismType, String provider) throws NoSuchAlgorithmException, NoSuchProviderException
Transform.XPATH2
)和機制型別(比如:DOM)的 TransformService
,由指定提供者提供。指定的提供者必須是已在安全提供者列表中註冊的。
注意,已註冊提供者的列表可以通過 Security.getProviders()
方法獲得。
algorithm
- 演算法的 URImechanismType
- XML 處理機制和表示形式的型別provider
- 提供者的字元串名稱
TransformService
NoSuchProviderException
- 如果指定的提供者沒有在安全提供者列表中註冊
NullPointerException
- 如果 provider
、mechanismType
或 algorithm
為 null
NoSuchAlgorithmException
- 如果不能從指定的提供者得到指定演算法和機制型別的 TransformService
實作Provider
public final String getMechanismType()
TransformService
支持的機制型別。
public final String getAlgorithm()
TransformService
支持的演算法 URI。
AlgorithmMethod
中的 getAlgorithm
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
不相容
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
- 如果指定參數對於此演算法無效
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。