JavaTM Platform
Standard Ed. 6

javax.xml.crypto.dsig
클래스 TransformService

java.lang.Object 
  상위를 확장 javax.xml.crypto.dsig.TransformService
모든 구현된 인터페이스:
AlgorithmMethod , Transform , XMLStructure


public abstract class TransformService
extends Object
implements Transform

변환 알고리즘 및 정규화 알고리즘용의 Service Provider Interface 입니다.  

TransformService 의 각 인스턴스는, 특정의 변환 알고리즘 또는 정규화 알고리즘 및 XML 기구형을 지원합니다. TransformService 를 작성하려면 , static getInstance 메소드를 호출해, 목적의 알고리즘 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 메소드는, thread 세이프인 것이 보증되고 있습니다. 이 클래스에서 정의되고 있는 static 메소드는, 악영향을 주는 일 없이, 복수 thread가 병행해 호출할 수가 있습니다.  

그러나 이것은, 이 클래스에서 정의되고 있는 비 static 메소드에는 들어맞지 않습니다. 특정의 프로바이더로 특히 설명이 없는 한, 단일 TransformService 인스턴스에 병행해 액세스 할 필요가 있는 복수 thread는, thread간에 동기를 잡아, 필요에 따라서 잠그지 않으면 안됩니다. 다른 TransformService 인스턴스를 조작하는 복수 thread간으로는, 동기를 잡을 필요는 없습니다.

도입된 버젼:
1.6

필드의 개요
 
인터페이스 javax.xml.crypto.dsig. Transform 로부터 상속된 필드
BASE64 , ENVELOPED , XPATH , XPATH2 , XSLT
 
생성자 의 개요
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)
          알고리즘 고유의 파라미터를 정렬화합니다.
 
클래스 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() 메소드 경유로 취득할 수 있습니다.

파라미터:
algorithm - 알고리즘의 URI
mechanismType - XML 처리 기구 및 표현의 형
반환값:
새로운 TransformService
예외:
NullPointerException - algorithm 또는 mechanismTypenull 의 경우
NoSuchAlgorithmException - 지정한 알고리즘 및 기구형용의 TransformService 구현을 지원하는 Provider 하지만 없는 경우
관련 항목:
Provider

getInstance

public static TransformService  getInstance(String  algorithm,
                                           String  mechanismType,
                                           Provider  provider)
                                    throws NoSuchAlgorithmException 
지정한 프로바이더가 제공하는, 지정된 알고리즘 URI (예: Transform.XPATH2 ) 및 기구형 (예: "DOM")을 지원하는 TransformService 를 돌려줍니다. 지정한 Provider 객체는, 프로바이더 리스트에 등록할 필요는 없습니다.

파라미터:
algorithm - 알고리즘의 URI
mechanismType - XML 처리 기구 및 표현의 형태
provider - Provider 객체
반환값:
새로운 TransformService
예외:
NullPointerException - provider, algorithm, 또는 mechanismTypenull 의 경우
NoSuchAlgorithmException - 지정한 알고리즘 및 기구형용의 TransformService 구현이, 지정한 Provider 객체로부터 이용할 수 없는 경우
관련 항목:
Provider

getInstance

public static TransformService  getInstance(String  algorithm,
                                           String  mechanismType,
                                           String  provider)
                                    throws NoSuchAlgorithmException ,
                                           NoSuchProviderException 
지정한 프로바이더가 제공하는, 지정된 알고리즘 URI (예: Transform.XPATH2 ) 및 기구형 (예: "DOM")을 지원하는 TransformService 를 돌려줍니다. 지정한 프로바이더는, 시큐리티 프로바이더 리스트에 등록할 필요가 있습니다.  

등록이 끝난 프로바이더의 리스트는,Security.getProviders() 메소드 경유로 취득할 수 있습니다.

파라미터:
algorithm - 알고리즘의 URI
mechanismType - XML 처리 기구 및 표현의 형태
provider - 프로바이더명의 캐릭터 라인명
반환값:
새로운 TransformService
예외:
NoSuchProviderException - 지정된 프로바이더가 시큐리티 프로바이더 리스트에 등록되지 않은 경우
NullPointerException - provider, mechanismType, 또는 algorithmnull 의 경우
NoSuchAlgorithmException - 지정한 알고리즘 및 기구형용의 TransformService 구현이, 지정한 프로바이더로부터 이용할 수 없는 경우
관련 항목:
Provider

getMechanismType

public final String  getMechanismType()
TransformService 가 지원하는 기구형을 돌려줍니다.

반환값:
기구형

getAlgorithm

public final String  getAlgorithm()
TransformService 가 지원하는 알고리즘의 URI 를 돌려줍니다.

정의:
인터페이스 AlgorithmMethod 내의 getAlgorithm
반환값:
알고리즘 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 
알고리즘 고유의 파라미터를 정렬화합니다. 정렬화하는 파라미터가 없는 경우, 이 메소드는 예외를 throw 하지 않고 돌려줍니다.

파라미터:
parent - 정렬화 된 파라미터가 추가된다 친노드를 포함하는, 기구 고유의 구조
context - 추가의 문맥을 포함하는 XMLCryptoContext. 적용 불가의 경우는,null 도 가능
예외:
ClassCastException - parent 의 형태 또는 context 가, 이 TransformService 와 호환성이 없는 경우
NullPointerException - parentnull 의 경우
MarshalException - 파라미터를 정렬화할 수 없는 경우

init

public abstract void init(XMLStructure  parent,
                          XMLCryptoContext  context)
                   throws InvalidAlgorithmParameterException 
지정된 파라미터 및 문서 문맥으로 이 TransformService 을 초기화합니다.

파라미터:
parent - 친구조가 포함된다 기구 고유의 구조
context - 추가의 문맥을 포함하는 XMLCryptoContext. 적용 불가의 경우는,null 도 가능
예외:
ClassCastException - parent 의 형태 또는 context 가, 이 TransformService 와 호환성이 없는 경우
NullPointerException - parentnull 의 경우
InvalidAlgorithmParameterException - 지정된 파라미터가 이 알고리즘에는 무효인 경우

JavaTM Platform
Standard Ed. 6

버그의 보고와 기능의 요청
한층 더 자세한 API 레퍼런스 및 개발자 문서에 대해서는,Java SE 개발자용 문서를 참조해 주세요. 개발자전용의 상세한 해설, 개념의 개요, 용어의 정의, 버그의 회피책, 및 코드 실례가 포함되어 있습니다.

Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.