XMLTransformation 노드

이 주제는 다음 절을 포함합니다.

목적

XSL(eXtensible Stylesheet Language) 스타일시트에서 제공하는 규칙에 따라 XML 메시지의 또 다른 양식으로 XML 메시지를 변환하려면 XMLTransformation 노드를 사용하십시오.

다음 세 가지 방법 중 하나로 이 변환에 적용할 스타일시트의 위치를 지정할 수 있습니다.

  1. 노드 등록 정보를 사용할 수 있습니다. 이 방법을 사용하면, 이러한 단일 스타일시트에서 정의된 변환이 이 노드에서 처리되는 모든 메시지에 적용됩니다.
  2. 메시지 자체 내의 XML 데이터 컨텐츠를 사용할 수 있습니다. 이렇게 하면, 메시지 자체에서 정의하는 스타일시트에 따라 메시지가 변환됩니다.
  3. 변경 시작LocalEnvironment 폴더 내에서 값을 설정할 수 있습니다. XMLTransformation 노드 앞에 이 값(예: Compute 노드)을 설정해야 합니다. 따라서 다양한 입력을 사용하여 이 메시지에 사용할 스타일시트를 판별할 수 있습니다(예: 데이터베이스의 값 또는 메시지 데이터 컨텐츠).변경 끝

변경 시작XSLT(eXtensible Stylesheet Language for Transformations) 컴파일러는 스타일시트가 메시지 내에 임베드되지 않고 노드 캐시 레벨(노드 등록 정보 스타일시트 캐시 레벨)이 0보다 클 경우에 변환에 사용됩니다. XSLT가 캐시되면, XSLT가 사용될 때마다 구문 분석되지 않으므로 성능을 개선합니다.변경 끝

XMLTransformation 노드는 다음 아이콘으로 Workbench에 표시됩니다.

XMLTransformation 노드 아이콘

메시지 플로우에서 노드 사용

이 노드를 사용하는 방법에 대한 예로는 정기적으로 정보를 교환하는 두 개의 언론 기관을 고려할 수 있습니다. 하나는 텔레비전 방송국일 수 있으며 다른 하나는 신문사일 수 있습니다. 정보는 유사하더라도, 이 두 조직에서 사용하는 어휘는 다릅니다. 이 노드를 사용하면 지정된 스타일시트 규칙을 적용하여 하나의 형식을 다른 형식으로 변환할 수 있습니다. 메시지에 스타일시트를 지정하면(XML 데이터 또는 로컬 환경), 동일한 노드에서 두 변환을 모두 수행할 수 있습니다.

XMLTransformation 노드를 사용하는 방법에 대한 자세한 정보는 XMLT 샘플을 참조하십시오.

변경 시작

전개 및 전개되지 않은 스타일시트

XMLTransformation 노드에서 스타일시트는 두 가지 방법으로 사용할 수 있습니다.
전개된 스타일시트
전개된 스타일시트는 브로커 아카이브(bar) 파일로 들여오고 대상 시스템에 전개하는 스타일시트입니다. 전개된 스타일시트는 WebSphere Message Broker에서 관리됩니다. 이러한 방식으로 스타일시트를 전개하는 것은 버전 6.0의 새 기능입니다. 프린시펄 스타일시트는 메시지 플로우에서 참조되는 루트 스타일시트입니다. 예를 들면, Eclipse 작업 공간에서 프린시펄 스타일시트에 대한 참조 C:\\project1\a\b.xsla/b.xsl(또는 ./a/b.xsl)로 지정해야 합니다. 프린시펄 스타일시트는 하위 스타일시트를 참조(포함 또는 들여오기)할 수 있습니다.
전개되지 않은 스타일시트
전개되지 않은 스타일시트는 XMLTransformation 노드가 액세스할 수 있는 위치에 저장되는 스타일시트입니다. 전개되지 않은 스타일시트는 WebSphere Message Broker에서 관리되지 않습니다.
자세한 정보는 스타일시트 및 XML 파일 이주를 참조하십시오.

전개된 스타일시트 또는 XML 파일의 전개

변경 시작XMLTransformation 노드를 구성하기 전에 스타일시트를 사용하는 방법을 이해해야 합니다. (스타일시트는 스타일시트뿐 아니라 다른 XML 파일도 참조할 수 있습니다.) 전개된 스타일시트 또는 XML 파일을 사용하려면 다음 단계를 수행해야 합니다.
  1. 파일이 올바른 파일 이름 확장자를 가지고 있는지 확인하십시오. 전개할 스타일시트는 파일 확장자로 .xsl 또는 .xslt를 가지고 있어야 하며 전개할 XML 파일은 파일 확장자로 .xml을 가지고 있어야 합니다.
  2. Eclipse 작업 공간으로 파일을 들여오십시오. 전개할 모든 스타일시트 및 XML 파일은 Eclipse 작업 공간 프로젝트로 들여와야 합니다. 전개할 스타일시트 또는 XML 파일이 위치 종속 하위 스타일시트 또는 XML 파일인 경우, 이 파일은 해당되는 상위 스타일시트에 상대적인 디렉토리 구조에 놓아야 합니다. 전개하지 않을 위치 종속 하위 스타일시트 또는 XML 파일은 Eclipse 작업 공간에 놓지 마십시오.
  3. 변경 시작파일에 대한 모든 참조가 상대적인지 확인하십시오. 일반적으로, 전개된 스타일시트에 대한 모든 참조는 상대적이어야 하며, 표시되는 위치는 중요하지 않습니다. 프린시펄 스타일시트에 대한 참조는 관련된 Eclipse 작업 공간 프로젝트의 루트에 상대적으로 작성해야 합니다.

    유일한 예외로, XMLTransformation 노드에서 스타일시트 이름 등록 정보로 프린시펄 스타일시트를 지정할 경우, Eclipse 작업 공간에서 해당 디렉토리 구조를 지시하는 절대 경로를 사용할 수 있습니다. 프린시펄 스타일시트가 발견되면, 시스템은 자동으로 노드 등록 정보를 올바른 상대 값으로 재설정합니다. 또한 관련된 Eclipse 작업 공간 프로젝트에서 사용 가능한, 모든 위치 종속 하위 스타일시트와 함께 프린시펄 스타일시트의 자동 전개를 수행할 수도 있습니다. 프린시펄 스타일시트의 위치 종속 하위 스타일시트(또는 XML 파일)에 대한 모든 참조는 해당되는 상위 스타일시트에 상대적으로 작성해야 합니다. 예를 들면, 스타일시트 //project1/a/b.xsl이 스타일시트 //project1/a/c/d.xsl을 참조할 경우, 참조를 c/d.xsl(또는 ./c/d.xsl)로 변경해야 합니다.

    변경 끝
  4. 전개하지 않는 하위 스타일시트 또는 XML 파일을 처리하십시오. 스타일시트는 다른 스타일시트를 참조할 수 있습니다. 아직 상위 스타일시트(또는 XML 파일)를 전개하지 않은 하위 스타일시트(또는 XML 파일)를 상대적으로 참조한 경우, 하위 스타일시트가 broker work path/XSL/external(broker work path/XML/external) 아래의 올바른 위치에 있는지 확인하십시오. 브로커는 자동으로 실행 그룹 전개 저장영역 트리, broker work path/XSL/externalbroker work path/XML/external 트리를 함께 연관시킵니다. 예를 들면, 브로커는 브로커의 전개된 저장영역에서 b/c.xml을 찾지 못한 경우 자동으로 broker work path/XML/external/a/b 디렉토리에서 전개된 프린시펄 스타일시트 a/style.xsl의 문서 참조(b/c.xml)를 검색합니다. 전개되었지만 작업 공간에서는 사용할 수 없는 파일에 대해서도 상대 경로 참조를 사용해야 합니다.
  5. 변경 시작파일을 전개하십시오. 시스템이 선택하지 않은 스타일시트 또는 XML 파일은 수동으로만 전개해야 합니다. (도구는 이러한 파일에 대한 경고를 제공합니다.) 노드에 대해 찾아보기를 누르거나 Eclipse 작업 공간에서 스타일시트 위치의 전체 경로를 제공하면 스타일시트는 BAR 파일에 자동으로 포함됩니다.

    수동으로 전개하려면 전개할 파일을 브로커 아카이브에 추가하고(브로커 아카이브에 파일 추가XSL 스타일시트에 키워드 추가 참조) 브로커 아카이브를 전개하십시오.

    변경 시작XMLTransformation 노드를 사용하는 모든 실행 그룹에 대해 다음 조치를 수행할 수 있습니다.
    • 스타일시트를 브로커의 broker work path/XSL/external 디렉토리에는 포함시키고 BAR 파일에는 포함시키지 마십시오.

      broker work path/XSL/external 디렉토리에 있는 스타일시트가 전개된 스타일시트와 동일한 경로 및 이름을 공유하면 전개된 스타일시트가 사용됩니다.

    • BAR 파일에 스타일시트를 포함시킨 후 BAR 파일을 전개하십시오. 하나 이상의 BAR 파일이 동일한 스타일시트 이름을 포함하고 있으면 전개된 마지막 BAR 파일의 스타일시트가 사용됩니다.
    • 고유의 BAR 파일에 스타일시트를 전개하십시오. BAR 파일이 XMLTransformation 노드를 사용하지만 스타일시트를 포함하고 있지 않으면 Message Brokers Toolkit이 경고 메시지를 발행합니다.
    변경 끝
    변경 끝
변경 끝
변경 끝

XMLTransformation 노드 구성

XMLTransformation 노드 인스턴스를 메시지 플로우에 넣었으면 이 노드를 구성할 수 있습니다. 편집기 보기에서 이 노드를 마우스 오른쪽 단추로 누른 후 등록 정보를 누르십시오. 노드의 기본 등록 정보가 표시됩니다.

값을 입력해야 하는 모든 필수 등록 정보(정의된 디폴트 값이 없는 등록 정보)는 등록 정보 대화 상자에서 별표(*)로 표시됩니다.

다음과 같이 XMLTransformation 노드를 구성하십시오.

  1. XML 임베드된 선택 우선순위, 메시지 환경 선택 우선순위브로커 노드 속성 선택 우선순위 등록 정보에 값을 선택하십시오. 설정한 값은 스타일시트 정보를 찾을 선택 가능한 위치가 검색되는 순서를 결정합니다. 최상위 우선순위 설정이 1입니다. 디폴트 순서는 다음과 같습니다.
    1. 변경 시작디폴트 값이 1XML 임베드된 선택 우선순위. 노드는 메시지 XML 데이터를 검색하여 스타일시트 위치 정보를 찾습니다. 예를 들면, XML 데이터에 다음이 포함될 수 있습니다.
      <?xml-stylesheet type="text/xsl" href="foo.xsl"?>
      변경 끝
    2. 디폴트 값이 2메시지 환경 선택 우선순위. 노드는 현재 메시지와 연관된 LoacalEnvironment를 검색하여 ComIbmXslXmltStylesheetname이라는 요소에 저장된 스타일시트 정보를 찾습니다.

      이 노드는 버전 2.1의 SupportPac에서 사용 가능하고 이 ComIbmXslMqsiStylesheetname 요소는 스타일시트 이름에 사용되었으므로, 현재 노드는 두 요소를 모두 점검합니다. 둘 다 존재하면, ComIbmXslXmltStylesheetname의 값이 우선합니다.

    3. 3의 디폴트 값을 가지는 브로커 노드 속성 선택 우선순위. 노드는 노드 등록 정보 스타일시트 이름스타일시트 디렉토리를 사용하여 올바른 값을 판별합니다.

    권장하지는 않지만 둘 이상의 등록 정보를 동일한 값으로 설정할 수 있습니다. 이렇게 하면, 노드에서 설정한 우선순위 순서는 위에 표시된 디폴트 순서입니다.

    ignore 값을 설정하면, 노드는 해당 위치에서 스타일시트 ID를 검색하지 않습니다. 세 가지 모든 등록 정보를 ignore로 설정할 경우 런타임 오류가 생성됩니다.

  2. 노드 등록 정보를 사용하여 전개되지 않은 스타일시트를 지정하려면, 스타일시트 이름에 필요한 값을 입력하십시오. 스타일시트 정보가 우선순위가 높은 위치(설정한 선택 우선순위 값으로 결정됨)에서 검색되고 발견될 경우에는 이 값이 무시됩니다.

    프린시펄 스타일시트를 지정하려면 다음 두 가지 방법으로 수행할 수 있습니다.
    1. 작업 공간에서 스타일시트 이름 등록 정보 필드 가까이에 있는 찾아보기 단추 사용. 식별된 프린시펄 스타일시트 및 상대적으로 참조되는 모든 후속 스타일시트는 메시지 플로우를 .bar 파일에 추가할 때 자동으로 BAR 파일에 추가됩니다(스타일시트와 해당되는 상위 스타일시트 둘 다 사용 가능할 경우).
    2. 이미 전개되거나 전개할 스타일시트를 식별할 경우, 스타일시트 이름 등록 정보만 사용할 수 있으며 스타일시트 디렉토리 등록 정보는 빈 상태로 두어야 합니다.
  3. 스타일시트 ID가 완전하면 스타일시트 디렉토리가 무시됩니다. 완전하지 않으면, 이 등록 정보에 설정한 값이 발견 위치와 관계없이 해당 스펙의 시작 부분에 추가됩니다.
  4. 변경 시작스타일시트 캐시 레벨에서, 이 노드 인스턴스에 저장된 컴파일되거나 구문 분석된 스타일시트 수를 지정하십시오. 디폴트 값은 5입니다. 노드가 존재(life)하는 동안에는 스타일시트 캐시가 보유됩니다. 플로우에서 노드를 삭제하거나 플로우를 삭제하거나 실행 그룹이 중지되면 스타일시트 캐시는 지워집니다.

    파일 시스템에서 파일을 재전개하거나 교체하여 캐시된 스타일시트를 변경하면 캐시를 보유하고 있는 XMLTransformation 노드는 새 메시지가 처리되기 전에 캐시된 버전을 수정(최종) 버전으로 교체합니다. 그러나 다수의 스타일시트를 변경하는 경우에는 변경하기 전에 관련된 메시지 플로우를 중지하십시오. 변경 전에 관련된 메시지 플로우를 중지하지 않으면 실행 중인 메시지 플로우로 인해 변경 순서가 바뀔 수 있으며 변경되는 스타일시트 간에 비호환성이 발생할 수 있습니다. mqsireload 명령을 사용하여 스타일시트를 재로드할 수 있지만 이 명령이 비호환성을 방지하는 것은 아닙니다.

    변경 끝
  5. 노드가 출력 메시지에 사용할 문자 세트를 찾기 위해 올바른 위치를 검색하는 순서를 지정하려면, 등록 정보 대화 상자 네비게이터에서 출력 문자 세트를 선택하십시오. 최상위 우선순위 설정이 1입니다. 디폴트 순서는 다음과 같습니다.
    1. 디폴트 값이 1메시지 환경 선택 우선순위. 노드는 현재 메시지와 연관된 로컬 환경을 검색하여 ComIbmXslXmltOutputcharset라는 요소에 저장된 문자 세트 정보를 찾습니다.

      예를 들면, 변환 결과를 UTF-8로 인코딩하려면, 이 요소에 문자열로 1208 값을 입력하십시오.

      이 노드가 버전 2.1의 SupportPac에서 사용 가능하고 ComIbmXslMqsiOutputcharset 요소가 출력 문자 세트에 사용되었으므로, 현재 노드는 두 요소를 모두 점검합니다. 둘 다 존재하면, ComIbmXslXmltOutputcharset의 값이 우선합니다.

    2. 2브로커 노드 속성 선택 우선순위. 이 노드는 출력 문자 세트 등록 정보를 사용하여 올바른 값을 판별합니다.

      출력 문자 세트에 값을 설정할 경우, 입력한 값은 숫자여야 합니다. 예를 들면, UTF-16으로 변환 출력을 인코딩하려면 1200을 입력하십시오.

    권장하지는 않지만 둘 이상의 등록 정보를 동일한 값으로 설정할 수 있습니다. 이렇게 하면, 노드에서 설정한 우선순위 순서는 위에 표시된 디폴트 순서입니다.

    0 값을 설정하면, 노드는 해당 위치에서 문자 세트 ID를 검색하지 않습니다.

    값이 설정되지 않거나 선택 우선순위가 0에 설정되지 않아 이 두 개 소스에서 노드가 출력 문자 세트를 판별할 수 없는 경우 디폴트 값 1208(UTF8)을 사용합니다. (XSL 스펙은 출력 문자 세트를 스타일시트에 지정할 수 있지만 XMLTransformation 노드가 이 값을 무시하는 것으로 표시합니다.)

  6. XMLTransformation 노드의 조치를 추적하려면 등록 정보 대화 상자 네비게이터에서 세부 추적을 선택하십시오. 세부 추적 등록 정보의 디폴트 값은 Off입니다. 추적을 활성화하려면 등록 정보를 On으로 설정하십시오.

    추적 정보는 XMLTTrace.log 추적 파일에 기록됩니다.

    • z/OS 시스템에서 이 파일은 <broker_dir>/output에 있습니다. 여기서 <broker_dir>은 브로커를 설치한 디렉토리입니다.
    • Windows 시스템에서 이 파일은 <broker work path>\common\log에 있습니다.
    • UNIX 시스템에서 이 파일은 <broker work path>\common\log에 있습니다.

    XMLTransformation 노드에 대한 세부 추적을 설정할 경우, 실행 그룹에 있는 모든 노드에 대해 설정됩니다.

    주: 이 등록 정보는 이제 사용하지 않습니다. 사용자 디버그 추적을 사용할 경우 관련되는 추적이 사용자 추적으로 이동합니다. XMLTransformation 노드에서 자세히 추적을 설정해도 사용자 추적에는 영향을 미치지 않습니다.
  7. 간단한 설명, 자세한 설명 또는 둘 다를 입력하려면, 등록 정보 대화 상자 네비게이터에서 설명을 선택하십시오.
  8. 적용을 누르면 등록 정보 대화 상자를 닫지 않고도 XMLTransformation 노드를 변경할 수 있습니다. 확인을 눌러 변경사항을 적용하고 등록 정보 대화 상자를 닫으십시오.

    대화 상자를 닫고 등록 정보에서 작성한 모든 변경을 제거하려면 취소를 누르십시오.

  9. 변경 시작실행 그룹을 정지하고 재시작하십시오.변경 끝
대형 XML 메시지를 다루고 '메모리 부족' 오류를 수신하는 경우, mqsireportproperties 명령을 사용하여 증가시킬 XSLT 엔진에 대한 Java 힙 크기의 현재 값과 mqsichangeproperties 명령을 볼 수 있습니다.
mqsireportproperties brokerName -e executionGroupLabel -o ComIbmJVMManager -n jvmMaxHeapSize
mqsichangeproperties brokerName -e executionGroupLabel -o ComIbmJVMManager -n jvmMaxHeapSize -v newSize
brokerName, executionGroupLabelnewSize를 적절한 값으로 바꾸기.

변경 시작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를 사용합니다.

주의사항 | 등록상표 | 다운로드 | 라이브러리 | 지원 | 피드백
Copyright IBM Corporation 1999, 2006 마지막 갱신 날짜: 2006/08/21
ac12490_