대상 변환의 작성자가 아닌 누군가가 변환 확장을 작성할 수 있습니다.
변환을 확장하려면 대상 변환의 extensible 및 public 특성이 true로 설정되는지 확인해야 합니다. 또한 확장점 정보와 대상 변환의 ID 그리고 대상 변환에 있는 변환의 ID를 확보해야 합니다. 대상 변환의 Manifest 파일에서 document 특성에 지정된 문서에서 이 정보를 얻을 수 있습니다.
또한 현재 작업공간에 없는 대상 변환의 ID를 지정할 수도 있습니다. 그러나 대상 변환이 등록될 때까지는 대상 변환을 실행하여 확장을 실행할 수 없습니다.
변환 확장을 작성한 후에는 대상 변환의 동작을 향상시키는 규칙, 추출기, 변환 및 특성을 선언할 수 있습니다. 이 요소를 선언하는 것이 변환 확장에서 처리 순서를 지정하는 것은 아닙니다. 선언하는 규칙, 추출기 또는 변환마다 RuleDefinition, ExtractorDefinition 또는 TransformDefinition 요소가 TransformationExtension 요소에 추가됩니다. 대상 변환을 실행할 때 코어 변환 기능은 요소에 대해 지정된 클래스를 로드하려고 시도하며 요소의 인스턴스를 대상 변환의 인스턴스에 추가합니다.
변환 확장을 작성할 때 여러 개의 변환을 확장할 수 있습니다. 확장된 변환(대상 변환이라고도 함)은 대상 변환에 존재해야 합니다. 확장할 변환을 지정할 때 ExtendTransform 요소가 변환 확장 플러그인의 Manifest 파일에 추가됩니다.
변환 확장의 규칙, 추출기 및 변환을 선언한 후, 대상 변환 내에서 실행되는 순서를 지정할 수 있습니다. 확장 가능한 변환에는 요소 목록(0 기준 색인)이 포함됩니다. 이 목록은 변환 엔진이 변환에서 요소를 실행하는 순서를 지정합니다. 요소는 대상 변환에 추가할 때 색인 값을 지정하거나 새 요소 다음에 실행할 요소를 표시하여 대상 변환의 기존 요소에서 요소를 삽입할 위치를 표시할 수 있습니다.
색인 값을 지정하지 않으면 대상 변환의 끝에 요소가 삽입됩니다.
변환 확장에서 요소 정의, 확장할 변환 지정 및 대상 변환에 요소 추가를 수행한 후에는 변환 확장 플러그인을 컴파일하고 런타임 Workbench에서 테스트할 수 있습니다. 변환 확장 작성의 개발 및 테스트 단계(Phase) 중에, 개별적인 TransformationExtension 요소를 사용하거나 사용하지 않도록 설정할 수 있습니다. 변환 확장을 포함하는 플러그인을 배치한 후 각 TransformationExtension 요소가 사용되는지 확인하십시오.
변환 확장을 실행하려면 대상 변환을 실행해야 합니다. 대상 변환의 인스턴스가 요청될 때 변환 서비스는 연관된 모든 확장을 대상 변환의 인스턴스에 통합합니다.
여러 개의 변환 확장이 동일한 변환을 확장하고 변환 요소에 대한 색인 값이 충돌하거나 존재하지 않는 경우, 요소가 실행되는 순서는 시작 시 Eclipse가 수행하는 플러그인 Manifest 파일의 구문 분석에 의해 판별됩니다.