이 주제는 다음 절을 포함합니다.
XSL(eXtensible Stylesheet Language) 스타일시트에서 제공하는 규칙에 따라 XML 메시지의 또 다른 양식으로 XML 메시지를 변환하려면 XMLTransformation 노드를 사용하십시오.
다음 세 가지 방법 중 하나로 이 변환에 적용할 스타일시트의 위치를 지정할 수 있습니다.
XSLT(eXtensible Stylesheet Language for Transformations) 컴파일러는
스타일시트가 메시지 내에 임베드되지 않고
노드 캐시 레벨(노드 등록 정보 스타일시트 캐시 레벨)이
0보다 클 경우에 변환에 사용됩니다. XSLT가 캐시되면, XSLT가 사용될 때마다 구문 분석되지 않으므로 성능을 개선합니다.
XMLTransformation 노드는 다음 아이콘으로 Workbench에 표시됩니다.
이 노드를 사용하는 방법에 대한 예로는 정기적으로 정보를 교환하는 두 개의 언론 기관을 고려할 수 있습니다. 하나는 텔레비전 방송국일 수 있으며 다른 하나는 신문사일 수 있습니다. 정보는 유사하더라도, 이 두 조직에서 사용하는 어휘는 다릅니다. 이 노드를 사용하면 지정된 스타일시트 규칙을 적용하여 하나의 형식을 다른 형식으로 변환할 수 있습니다. 메시지에 스타일시트를 지정하면(XML 데이터 또는 로컬 환경), 동일한 노드에서 두 변환을 모두 수행할 수 있습니다.
XMLTransformation 노드를 사용하는 방법에 대한 자세한 정보는 XMLT 샘플을 참조하십시오.
유일한 예외로, XMLTransformation 노드에서 스타일시트 이름 등록 정보로 프린시펄 스타일시트를 지정할 경우, Eclipse 작업 공간에서 해당 디렉토리 구조를 지시하는 절대 경로를 사용할 수 있습니다. 프린시펄 스타일시트가 발견되면, 시스템은 자동으로 노드 등록 정보를 올바른 상대 값으로 재설정합니다. 또한 관련된 Eclipse 작업 공간 프로젝트에서 사용 가능한, 모든 위치 종속 하위 스타일시트와 함께 프린시펄 스타일시트의 자동 전개를 수행할 수도 있습니다. 프린시펄 스타일시트의 위치 종속 하위 스타일시트(또는 XML 파일)에 대한 모든 참조는 해당되는 상위 스타일시트에 상대적으로 작성해야 합니다. 예를 들면, 스타일시트 //project1/a/b.xsl이 스타일시트 //project1/a/c/d.xsl을 참조할 경우, 참조를 c/d.xsl(또는 ./c/d.xsl)로 변경해야 합니다.
수동으로 전개하려면 전개할 파일을 브로커 아카이브에 추가하고(브로커 아카이브에 파일 추가 및 XSL 스타일시트에 키워드 추가 참조) 브로커 아카이브를 전개하십시오.
broker work path/XSL/external 디렉토리에 있는 스타일시트가 전개된 스타일시트와 동일한 경로 및 이름을 공유하면 전개된 스타일시트가 사용됩니다.
XMLTransformation 노드 인스턴스를 메시지 플로우에 넣었으면 이 노드를 구성할 수 있습니다. 편집기 보기에서 이 노드를 마우스 오른쪽 단추로 누른 후 등록 정보를 누르십시오. 노드의 기본 등록 정보가 표시됩니다.
값을 입력해야 하는 모든 필수 등록 정보(정의된 디폴트 값이 없는 등록 정보)는 등록 정보 대화 상자에서 별표(*)로 표시됩니다.
다음과 같이 XMLTransformation 노드를 구성하십시오.
<?xml-stylesheet type="text/xsl" href="foo.xsl"?>
이 노드는 버전 2.1의 SupportPac에서 사용 가능하고 이 ComIbmXslMqsiStylesheetname 요소는 스타일시트 이름에 사용되었으므로, 현재 노드는 두 요소를 모두 점검합니다. 둘 다 존재하면, ComIbmXslXmltStylesheetname의 값이 우선합니다.
권장하지는 않지만 둘 이상의 등록 정보를 동일한 값으로 설정할 수 있습니다. 이렇게 하면, 노드에서 설정한 우선순위 순서는 위에 표시된 디폴트 순서입니다.
ignore 값을 설정하면, 노드는 해당 위치에서 스타일시트 ID를 검색하지 않습니다. 세 가지 모든 등록 정보를 ignore로 설정할 경우 런타임 오류가 생성됩니다.
노드 등록 정보를 사용하여 전개되지 않은 스타일시트를 지정하려면, 스타일시트 이름에 필요한 값을 입력하십시오. 스타일시트 정보가 우선순위가 높은 위치(설정한 선택 우선순위 값으로 결정됨)에서 검색되고 발견될 경우에는 이 값이 무시됩니다.
파일 시스템에서 파일을 재전개하거나 교체하여 캐시된 스타일시트를 변경하면 캐시를 보유하고 있는 XMLTransformation 노드는 새 메시지가 처리되기 전에 캐시된 버전을 수정(최종) 버전으로 교체합니다. 그러나 다수의 스타일시트를 변경하는 경우에는 변경하기 전에 관련된 메시지 플로우를 중지하십시오. 변경 전에 관련된 메시지 플로우를 중지하지 않으면 실행 중인 메시지 플로우로 인해 변경 순서가 바뀔 수 있으며 변경되는 스타일시트 간에 비호환성이 발생할 수 있습니다. mqsireload 명령을 사용하여 스타일시트를 재로드할 수 있지만 이 명령이 비호환성을 방지하는 것은 아닙니다.
예를 들면, 변환 결과를 UTF-8로 인코딩하려면, 이 요소에 문자열로 1208 값을 입력하십시오.
이 노드가 버전 2.1의 SupportPac에서 사용 가능하고 ComIbmXslMqsiOutputcharset 요소가 출력 문자 세트에 사용되었으므로, 현재 노드는 두 요소를 모두 점검합니다. 둘 다 존재하면, ComIbmXslXmltOutputcharset의 값이 우선합니다.
출력 문자 세트에 값을 설정할 경우, 입력한 값은 숫자여야 합니다. 예를 들면, UTF-16으로 변환 출력을 인코딩하려면 1200을 입력하십시오.
권장하지는 않지만 둘 이상의 등록 정보를 동일한 값으로 설정할 수 있습니다. 이렇게 하면, 노드에서 설정한 우선순위 순서는 위에 표시된 디폴트 순서입니다.
0 값을 설정하면, 노드는 해당 위치에서 문자 세트 ID를 검색하지 않습니다.
값이 설정되지 않거나 선택 우선순위가 0에 설정되지 않아 이 두 개 소스에서 노드가 출력 문자 세트를 판별할 수 없는 경우 디폴트 값 1208(UTF8)을 사용합니다. (XSL 스펙은 출력 문자 세트를 스타일시트에 지정할 수 있지만 XMLTransformation 노드가 이 값을 무시하는 것으로 표시합니다.)
추적 정보는 XMLTTrace.log 추적 파일에 기록됩니다.
XMLTransformation 노드에 대한 세부 추적을 설정할 경우, 실행 그룹에 있는 모든 노드에 대해 설정됩니다.
대화 상자를 닫고 등록 정보에서 작성한 모든 변경을 제거하려면 취소를 누르십시오.
mqsireportproperties brokerName -e executionGroupLabel -o ComIbmJVMManager -n jvmMaxHeapSize
mqsichangeproperties brokerName -e executionGroupLabel -o ComIbmJVMManager -n jvmMaxHeapSize -v newSize
brokerName, executionGroupLabel 및 newSize를
적절한 값으로 바꾸기.newSize에 대해 선택하는 값은 컴퓨터에 있는 물리적 메모리 크기와
Java 사용 정도에 따라 달라집니다.
512MB(536870912) - 1GB(1073741824) 범위의 값이 권장됩니다.
다음 표에는 XMLTransformation 노드 터미널이 설명되어 있습니다.
터미널 | 설명 |
---|---|
In | 노드에서 처리할 메시지를 승인하는 입력 터미널. |
Failure | 변환 시 오류가 감지될 경우 원래 메시지가 라우트될 출력 터미널. |
Out | 정상적으로 변환된 메시지가 라우트될 출력 터미널. |
다음 표에는 노드 등록 정보가 설명되어 있습니다. 앞에 M이 표시된 열은 등록 정보가 필수임을 나타내며(디폴트가 정의되지 않았을 때 값을 입력해야 하는 경우 등록 정보 대화 상자에 별표(*)로 표시됨) 앞에 C가 표시된 열은 등록 정보가 구성 가능함을 나타냅니다(메시지 플로우를 Bar 파일에 추가하여 전개할 때 값을 변경할 수 있음).
다음 표에는 XMLTransformation 노드 스타일시트 등록 정보가 설명되어 있습니다.
등록 정보 | M | C | 디폴트 | 설명 |
---|---|---|---|---|
XML 임베드된 선택 우선순위 | 예 | 아니오 | 1 | XML 데이터에서 스타일시트 위치 정보를 검색할 우선순위 값. |
메시지 환경 선택 우선순위 | 예 | 아니오 | 2 | 현재 메시지의 LocalEnvironment 폴더에서 스타일시트 위치 정보를 검색할 우선순위 값. |
브로커 노드 속성 선택 우선순위 | 예 | 아니오 | 3 | 노드의 등록 정보로 스타일시트 위치 정보를 검색할 우선순위 값. |
스타일시트 이름 | 아니오 | 예 | 스타일시트 스펙이 In 노드 등록 정보에 대해 검색될 경우 사용되는 스타일시트의 이름. | |
스타일시트 디렉토리 | 아니오 | 예 | 스타일시트가 있는 경로. 모든 위치 메소드에서 사용합니다. | |
스타일시트 캐시 레벨 | 아니오 | 아니오 | 5 | 노드 인스턴스에 저장된, 컴파일 또는 구문 분석된 스타일시트의 수. |
다음 표에는 XML변환 노드 출력 문자 세트 등록 정보가 설명되어 있습니다.
등록 정보 | M | C | 디폴트 | 설명 |
---|---|---|---|---|
메시지 환경 선택 우선순위 | 예 | 아니오 | 1 | 현재 메시지의 LocalEnvironment 폴더에서 출력 문자 세트 ID를 검색할 우선순위 값. |
브로커 노드 속성 선택 우선순위 | 예 | 아니오 | 2 | 노드의 등록 정보로 출력 문자 세트 ID를 검색할 우선순위 값. |
출력 문자 세트 | 아니오 | 아니오 | 출력 문자 세트의 숫자 값. |
다음 표에는 XMLTransformation 노드 세부 추적 등록 정보가 설명되어 있습니다.
등록 정보 | M | C | 디폴트 | 설명 |
---|---|---|---|---|
추적 설정 | 예 | 아니오 | 작동 중지 | 추적이 작동되는지 작동 중지 상태인지 판별합니다. 추적이 작동되면, 낮은 레벨 추적이 파일에 기록됩니다. |
다음 표에는 XMLTransformation 노드 설명 등록 정보가 설명되어 있습니다.
등록 정보 | M | C | 디폴트 | 설명 |
---|---|---|---|---|
간단한 설명 | 아니오 | 아니오 | 노드에 대한 간략한 설명. | |
자세한 설명 | 아니오 | 아니오 | 메시지 플로우에서 노드의 목적을 설명하는 텍스트. |
입력 메시지 본문의 도입 부분에 XML 인코딩 선언이 포함되면 XMLTransformation 노드는 해당 인코딩을 무시하며 메시지 디코드를 위해 항상 메시지 등록 정보 폴더의 CodedCharSetId를 사용합니다.