Nodo XMLTransformation

Este tema contiene las secciones siguientes:

Finalidad

Utilice el nodo XMLTransformation para transformar un mensaje XML a otro formato de mensaje XML, de acuerdo con las normas proporcionadas por una hoja de estilo XSL (eXtensible Stylesheet Language).

Puede especificar la ubicación de la hoja de estilo para aplicar esta transformación de uno de tres modos:

  1. Puede utilizar las propiedades del nodo. Esto asegura que la transformación definida por esta hoja de estilo individual se aplique a cada mensaje procesado por este nodo.
  2. Puede utilizar el contenido de los datos XML dentro del propio mensaje. Esto transforma el mensaje de acuerdo con una hoja de estilo que el propio mensaje define.Este comportamiento sólo está disponible para los archivos XSL y XML que están ubicados en un proyecto de flujo de mensajes.
  3. Puede establecer un valor en la carpeta LocalEnvironment asociada al mensaje. Esto proporciona una elección dinámica de hoja de estilo, porque debe establecer este valor (en un nodo Compute) dentro del flujo de mensajes después de recibir el mensaje. Por consiguiente, puede utilizar diversas entradas para determinar qué hoja de estilo debe utilizar para este mensaje, por ejemplo el contenido de los datos de datos o un valor de una base de datos.

Se utiliza un compilador XSLT (eXtensible Stylesheet Language for Transformations) para la transformación si la hoja de estilo no está incorporada dentro del mensaje y el nivel de antememoria de nodo (propiedad de nodo Nivel de antememoria de hojas de estilo) es mayor que 0.

El nodo XMLTransformation se representa en el área de trabajo mediante el icono siguiente:

Icono del nodo XMLTransformation

Utilización de este nodo en un flujo de mensajes

Para obtener un ejemplo de cómo utilizar este nodo, presuponga que hay dos agencias de noticias que intercambian información de modo regular. Una puede ser una cadena de televisión y la otra un periódico. Aunque la información es similar, el vocabulario que utilizan las dos es diferente. Este nodo puede transformar un formato al otro aplicando las normas de la hoja de estilo especificada. Si especifica la hoja de estilo en el mensaje (los datos XML o LocalEnvironment), el mismo nodo puede realizar ambas transformaciones.

Configuración del nodo XMLTransformation

Cuando haya colocado una instancia del nodo XMLTransformation en un flujo de mensajes, puede configurarlo. Pulse con el botón derecho del ratón el nodo en la vista del editor y pulse Propiedades. Se visualizarán las propiedades básicas del nodo.

Todas las propiedades obligatorias para las que debe especificar un valor (las que no tienen un valor por omisión definido) están marcadas con un asterisco en el diálogo de propiedades.

Configure el nodo XMLTransformation como se indica a continuación:

  1. Seleccione valores para las propiedades Prioridad de selección XML integrado, Prioridad de selección de entorno de mensaje y Prioridad de selección de atributo de nodo de intermediario. Los valores que establezca determinan el orden en el que se buscan las ubicaciones alternativas para la información de hoja de estilo. El valor de la prioridad más alta es 1. El orden por omisión es:
    1. Prioridad de selección intercalada XML, por lo tanto, tiene un valor por omisión 1. El nodo busca los datos XML para obtener información de ubicación de hoja de estilo. Por ejemplo, los datos XML pueden contener:
      <xml-stylesheet type="text/xsl" href="foo.xsl">
    2. Prioridad de selección de entorno de mensajeque, por lo tanto, tiene un valor por omisión de 2. El nodo busca el LocalEnvironment asociado al mensaje actual para obtener información de hoja de estilo almacenada en un elemento denominado ComIbmXslXmltStylesheetname.

      Dado que este nodo no estaba disponible en un SupportPac para la Versión 2.1 y se ha utilizado el elemento ComIbmXslMqsiStylesheetname para el nombre de la hoja de estilo, el nodo actual comprueba ambos elementos. Si ambos elementos están presentes, el valor ComIbmXslXmltStylesheetname tiene prioridad.

    3. Prioridad de selección de atributo de nodo de intermediario que, por consiguiente, tiene un valor por omisión de 3. El nodo utiliza las propiedades de nodo Nombre de hoja de estilo y Directorio de hojas de estilo para determinar los valores correctos.

    Puede establecer más de una propiedad en el mismo valor, aunque esto no se recomienda. Si lo hace, el orden de prioridad establecido por el nodo es el orden por omisión indicado anteriormente.

    Si establece un valor de ignorar, el nodo no buscará la ubicación correspondiente para la identificación de hoja de estilo. Si establece las tres propiedades en ignorar, se generará un error de tiempo de ejecución.

  2. Si desea especificar una hoja de estilo no desplegada utilizando propiedades de nodo, entre el valor necesario para Nombre de hoja de estilo. Se ignora este valor si se busca la información de hoja de estilo y se encuentra en una ubicación preferida (lo que queda determinado por los valores de prioridad de selección que haya establecido).

    Si desea especificar una hoja de estilo principal, existen dos procedimientos para hacerlo:
    1. Utilizando el botón Examinar situado cerca del campo de propiedad Nombre de hoja de estilo del espacio de trabajo. La hoja de estilo principal identificada y todas las hojas de estilo descendientes a las que se hace referencia de forma relativa se añaden automáticamente al archivo bar cuando se añade un flujo de mensajes a un archivo .bar (a condición de que éstas y las hojas de estilo padre estén disponibles).
    2. Para la identificación de una hoja de estilo ya desplegada o que se debe desplegar, sólo se puede utilizar la propiedad Nombre de hoja de estilo y la propiedad Directorio de hojas de estilo debe dejarse vacía.
  3. Si la identificación de la hoja de estilo está totalmente calificada, se ignora el Directorio de hoja de estilo, si no es así, el valor que establezca en esta propiedad se añade al principio de la especificación, independientemente de dónde se encuentre.
  4. En Nivel de antememoria de hoja de estilo, especifique el número de hojas de estilo compiladas o analizadas que se almacenan en esta instancia del nodo. El valor por omisión es 5. La antememoria de la hoja de estilo se mantiene durante la vida del nodo. Se borra cuando se suprime el nodo del flujo o cuando se suprime el flujo o cuando se detiene el grupo de ejecución. Si modifica una hoja de estilo, se utiliza preferentemente la versión modificada (la más reciente) en lugar de la versión almacenada en antememoria. Si desea renovar la antememoria, utilice el mandato mqsireload.
  5. Seleccione el juego de caracteres de salida del navegador en el diálogo propiedades para especificar el orden en el que el nodo busca las ubicaciones válidas donde encontrar el juego de caracteres que se utilizará para el mensaje de salida. El valor de prioridad más alta es 1. El orden por omisión es:
    1. Prioridad de selección de entorno de mensajeque, por lo tanto, tiene un valor por omisión de 1. El nodo busca en el LocalEnvironment asociado al mensaje actual la información del juego de caracteres almacenada en un elemento denominado ComIbmXslXmltOutputcharset.

      Por ejemplo, para codificar la salida de la transformación como UTF-8, escriba el valor 1208 como una serie de este elemento.

      Debido a que este nodo estaba disponible en un SupportPac para Versión 2.1 se ha utilizado un elemento ComIbmXslMqsiOutputcharset para el juego de caracteres de salida, el nodo actual comprueba ambos elementos. Si ambos elementos están presentes, el valor ComIbmXslXmltOutputcharset tiene prioridad.

    2. Prioridad de selección de atributo de nodo de intermediario que, por consiguiente, tiene un valor por omisión de 2. El nodo utiliza la propiedad Juego de caracteres de salida para determinar el valor correcto.

      Si establece un valor para Juego de caracteres de salida, el valor que especifique debe ser numérico. Por ejemplo, para codificar la salida de la transformación como UTF-16, especifique 1200.

    Puede establecer más de una propiedad en el mismo valor, aunque esto no se recomienda. Si lo hace, el orden de prioridad establecido por el nodo es el orden por omisión indicado anteriormente.

    Si establece un valor de 0, el nodo no busca la ubicación correspondiente del identificador del juego de caracteres.

    Si el nodo no puede determinar el juego de caracteres de salida de ninguna de estas dos fuentes, ya sea debido a que no se ha establecido ningún valor o a que las prioridades de selección se han establecido en 0, se utiliza el valor por omisión 1208 (UTF8). (La especificación XSL indica que se puede especificar el juego de caracteres de salida en la hoja de estilo; sin embargo, el nodo XMLTransformation ignora este valor.)

  6. Seleccione Rastreo detallado en el navegador del diálogo de propiedades para rastrear las acciones del nodo XMLTransformation. El valor por omisión para la propiedad Rastreo detallado es Desactivado. Para activar el rastreo, establezca la propiedad en Activado.

    La información de rastreo se graba en un archivo de rastreo XMLTTrace.log:

    • En los sistemas z/OS, el archivo se encuentra en <dir_intermediario>/output, donde <dir_intermediario es el directorio en el que ha instalado el intermediario.
    • En los sistemas Windows, el archivo se encuentra en <vía de acceso de trabajo de intermediario>\common\log.
    • En los sistemas UNIX, el archivo se encuentra en <vía de acceso de trabajo de intermediario>\common\log.

    Si activa el rastreo detallado en un nodo XMLTransformation, está activado para todos los nodos del grupo de ejecución.

    Nota: Actualmente esta propiedad ya no se utiliza. Ahora cualquier rastreo pertinente va al rastreo de usuario, a condición de que el rastreo de depuración de usuario esté habilitado. El establecimiento de Rastreo detallado en el nodo XMLTransformation no afecta a ningún rastreo de usuario.
  7. Seleccione Descripción en el diálogo de propiedades del navegador para escribir una descripción breve, una descripción larga o ambas cosas.
  8. Pulse Aplicar para realizar los cambios en el nodoXMLTransformation sin cerrar el diálogo de propiedades. Pulse Aceptar para aplicar los cambios y cerrar el diálogo de propiedades.

    Pulse Cancelar para cerrar el diálogo y descartar todos los cambios que ha realizado en las propiedades.

Si está manejando mensajes XML de gran tamaño y recibe un error de falta de memoria, puede utilizar el mandato mqsichangeproperties para aumentar el tamaño del almacenamiento dinámico Java para el motor XSLT. Por ejemplo, utilizando el código siguiente:
mqsichangeproperties brokerName -e executionGroupLabel -o ComIbmJVMManager -n jvmMaxHeapSize -v newSize
pero sustituya brokerName, executionGroupLabel y newSize por los valores correctos.

Terminales y propiedades

Los terminales del nodo XMLTransformation se describen en la tabla siguiente.

Terminal Descripción
Entrada El terminal de entrada que acepta el mensaje para que lo procese el nodo.
De anomalías El terminal de salida al que se direcciona el mensaje original si se detecta un error durante la transformación.
De salida El terminal de salida al que se direcciona el mensaje que se ha transformado correctamente.

Las tablas siguientes describen las propiedades del nodo. La columna con la cabecera M indica si la propiedad es obligatoria (lo que se marca con un asterisco en el diálogo propiedades si debe escribir un valor cuando no se ha definido el valor por omisión), la columna con la cabecera C indica si la propiedad se puede configurar (puede cambiar el valor cuando añada el flujo de mensajes al archivo bar para desplegarlo).

Las propiedades de la hoja de estilo del nodo XMLTransformation se describen en la tabla siguiente.

Propiedad M C Valor por omisión Descripción
Prioridad de selección intercalada XML No 1 El valor de prioridad para buscar la información sobre la ubicación de la copia de estilos en los datos XML.
Prioridad de selección de entorno de mensajes No 2 El valor de prioridad para buscar la información sobre la ubicación de la copia de estilos en la carpeta LocalEnvironment del mensaje actual.
Prioridad de selección de atributo de nodo de intermediario No 3 El valor de prioridad para buscar la información de la ubicación de la hoja de estilo como una propiedad del nodo
Nombre de la hoja de estilo No   El nombre de la hoja de estilo, utilizado si se busca la especificación de hoja de estilo en las propiedades de nodo.
Directorio de la hoja de estilo No   La vía de acceso donde está ubicada la hoja de estilo. La utilizan todos los métodos de ubicación.
Nivel de antememoria de hoja de estilo No No 5 El número de hojas de estilo compiladas o analizadas que se almacenan en esta instancia del nodo.

Las propiedades del juego de caracteres de salida del nodo XMLTransformation se describen en la tabla siguiente.

Propiedad M C Valor por omisión Descripción
Prioridad de selección de entorno de mensajes No 1 El valor de prioridad para buscar el ID del juego de caracteres de salida en la carpeta LocalEnvironment del mensaje actual.
Prioridad de selección de atributo de nodo de intermediario No 2 El valor de prioridad para buscar el ID del juego de caracteres de salida como una propiedad del nodo.
Juego de caracteres de salida No No   El valor numérico del juego de caracteres de salida

Las propiedades del rastreo detallado del nodo XMLTransformation se describen en la tabla siguiente.

Propiedad M C Valor por omisión Descripción
Definición de rastreo No Desactivado Si se desactiva o no el rastreo. Si activa el rastreo, se registra un nivel bajo de rastreo en un archivo.

Las propiedades de la descripción del nodo XMLTransformation se describen en la tabla siguiente.

Propiedad M C Valor por omisión Descripción
Descripción corta No No   Una descripción breve del nodo.
Descripción larga No No   Texto que describe la finalidad del nodo en el flujo de mensajes.

Despliegue de hojas de estilo o de archivos XML desplegados

Para utilizar hojas de estilo o archivos XML desplegados, debe realizar lo siguiente:
  1. Asegúrese de que los archivos tienen las extensiones de nombre de archivo correctas: Las hojas de estilo que se van a desplegar deben tener .xsl o .xslt como extensión de archivo y los archivos XML que se van a desplegar deben tener .xml como extensión de archivo.
  2. Importe los archivos al espacio de trabajo de Eclipse: Todas las hojas de estilo y los archivos XML que se deben desplegar deben importarse a un proyecto de espacio de trabajo de Eclipse. Las hojas de estilo o los archivos XML descendientes dependientes de ubicación que se deben desplegar deben colocarse en la estructura de directorios correcta en relación a las hojas de estilo padre. No debe poner en el espacio de trabajo de Eclipse descendientes dependientes de ubicación que no desea desplegar.
  3. Asegúrese de que todas las referencias a los archivos sean relativas: De forma general, todas las referencias a una hoja de estilo principal que pueden aparecer en el entorno local de un flujo, en un documento XML de entrada, en la propiedad Nombre de hoja de estilo del nodo XMLTransformation o en una hoja de estilo padre, deben ser relativas. Una referencia a una hoja de estilo principal debe ser relativa respecto a la raíz del proyecto de espacio de trabajo de Eclipse pertinente. Por ejemplo, una referencia a una hoja de estilo principal del espacio de trabajo de Eclipse, C:\\project1\a\b.xsl, debe especificarse como a/b.xsl (o ./a/b.xsl). Hay una única excepción: cuando se especifica una hoja de estilo principal como propiedad Nombre de hoja de estilo en un nodo XMLTransformation, también se puede utilizar una vía de acceso absoluta que apunte a la estructura de directorios correcta del espacio de trabajo de Eclipse. Si se encuentra la hoja de estilo principal, el sistema restablece automáticamente la propiedad de nodo en el valor relativo correcto (y realiza un despliegue automático de la hoja de estilo principal, junto con todas las hojas de estilo descendientes dependientes de la ubicación que estén disponibles en el proyecto de espacio de trabajo de Eclipse pertinente). Todas las referencias a las hojas de estilo (o archivos XML) descendientes de la ubicación de un estilo principal deben ser relativas respecto a la ubicación de las hojas de estilo padre. Por ejemplo, si la hoja de estilo //project1/a/b.xsl hace referencia a la hoja de estilo //project1/a/c/d.xsl, se debe cambiar la referencia a c/d.xsl (o ./c/d.xsl).
  4. Trate las hojas de estilo o los archivos XML hijo no desplegados: Si tiene una hoja de estilo (o archivo XML) hijo al que se hace referencia de forma relativa que no se debe desplegar todavía aunque su padre lo está, asegúrese de que se pone en el lugar correcto bajo /XSL/external (/XML/external). Un intermediario asocia automáticamente el árbol de almacenamiento desplegado de grupo de ejecución /XSL/external y el árbol /XML/external. Por ejemplo, esto significa que el intermediario realiza automáticamente en el directorio /XML/external/a/b una búsqueda de una referencia de documento (b/c.xml) en la hoja de estilo principal desplegada a/style.xsl si no se encuentra b/c.xml en el almacenamiento desplegado del intermediario. También se deben utilizar referencias de vías de acceso relativas para archivos que se sabe que se han desplegado pero que no están disponibles en el espacio de trabajo.
  5. Despliegue los archivos: Sólo necesita desplegar manualmente las hojas de estilo o los archivos XML que el sistema no ha elegido (las herramientas proporcionan avisos acerca de estos archivos). Para desplegar manualmente, añada los archivos que se deben desplegar a un archivador de intermediario (consulte Adición de archivos a un archivador de intermediario y Adición de palabras clave a las hojas de estilo XSL) y despliegue el archivador de intermediario. Sólo necesita desplegar una hoja de estilo o un archivo XML una vez para todos los flujos de mensajes que pertenecen al mismo grupo de ejecución y como mínimo una vez para cada grupo de ejecución. No es necesario desplegar hojas de estilo o archivos XML en el mismo archivo .bar que contiene los flujos que hacen referencia a ellos. Tampoco ningún flujo necesita hacer referencia a las hojas de estilo y los archivos XML de un archivo .bar. Sin embargo, cuando se guarda un flujo en un archivo .bar, se proporcionan avisos si no se encuentra ninguna hoja de estilo o ningún archivo XML hijo en el archivo .bar. Es responsabilidad del usuario asegurarse de que estas hojas de estilo o estos archivos XML hijo estén disponibles en el intermediario. Un intermediario no está informado de los proyectos de Eclipse. Por consiguiente, una hoja de estilo desplegada que pertenece a un proyecto puede grabarse encima de otra si ambas comparten la misma vía de acceso de directorio y el mismo nombre de archivo, incluso aunque pertenezcan a proyectos diferentes. Un despliegue se graba, sin aviso, encima de todas las versiones antiguas existentes de los archivos que se están desplegando. Esto también se aplica a las hojas de estilo desplegadas automáticamente.
Avisos | Marcas registradas | Descargas | Biblioteca | Soporte | Su opinión
Copyright IBM Corporation 1999, 2005 Última actualización: 11/11/2005
ac12490_