Nodo XMLTransformation

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

Este tema contiene las secciones siguientes:

Finalidad

Hay tres maneras de especificar la ubicación de la hoja de estilo para aplicar esta transformación:

  • Utilice el contenido de los datos XML dentro del propio mensaje para transformar el mensaje de acuerdo con una hoja de estilo que el propio mensaje define.
  • Establezca un valor en la carpeta LocalEnvironment. Este valor se ha de establecer en un nodo que preceda al nodo XMLTransformation (por ejemplo, un nodo Compute). Por consiguiente, puede utilizar diversas entradas para determinar qué hoja de estilo debe utilizar para este mensaje, como por ejemplo el contenido de los datos del mensaje, o un valor de una base de datos.
  • Utilice las propiedades del nodo para asegurarse de que la transformación definida por esta hoja de estilo individual se aplique a cada mensaje procesado por este nodo.

Se utiliza un compilador XSLT (Extensible Stylesheet Language for Transformations) para la transformación si la hoja de estilo no está incluida dentro del mensaje y el nivel de memoria caché del nodo (la propiedad de nodo Nivel de memoria caché de hojas de estilo) es mayor que cero. Si el XSLT se almacena en memoria caché, el rendimiento mejora porque el XSLT no se analiza cada vez que se utiliza.

Si el prólogo del cuerpo del mensaje de entrada contiene una declaración de codificación XML, el nodo XMLTransformation ignora la codificación y utiliza siempre el ID de juego de caracteres codificado (CodedCharSetId) de la carpeta de propiedades del mensaje para descodificar el mensaje.

El nodo XMLTransformation se encuentra en la bandeja Transformación de la paleta y está representado en el entorno de trabajo mediante el siguiente icono:

Icono de 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.

Vea el siguiente ejemplo para ver información más detallada sobre la utilización del nodo XMLTransformation: Los ejemplos sólo pueden verse cuando se utiliza el centro de información que está integrado en el Kit de herramientas de Message Brokers.

Tenga en cuenta las siguientes consideraciones si la entrada del nodo XMLTransformation se genera desde el analizador XMLNSC o el analizador MRM. El analizador XMLNSC descarta cierto tipo de información en documentos XML, como instrucciones de proceso y comentarios, si no se han establecido propiedades en un nodo precedente para retener esta información. Para asegurarse de que el nodo XMLTransformation transforma el mensaje correctamente, establezca correctamente las propiedades Retener contenido mixto, Retener comentarios y Retener instrucciones de proceso en el nodo precedente (por ejemplo, un nodo MQInput). El analizador MRM también descarta esta información, pero no puede retener información para este analizador, por lo tanto, evite utilizar el dominio MRM si esta información es vital para la transformación.

Hojas de estilo desplegadas y no desplegadas

Puede utilizar las hojas de estilo de dos maneras diferentes con el nodo XMLTransformation:
Hojas de estilo desplegadas
Las hojas de estilo desplegadas son hojas de estilo que importa a un archivo de archivado de intermediario (BAR) y despliega en sistemas de destino. Las hojas de estilo desplegadas las gestiona el intermediario. Una hoja de estilo principal es la hoja de estilo raíz a la que se hace referencia en un flujo de mensajes; por ejemplo, una referencia a una hoja de estilo principal en el espacio de trabajo de Eclipse, C:\\project1\a\b.xsl debe especificarse como a/b.xsl (o ./a/b.xsl). Una hoja de estilo principal puede hacer referencia (incluir o importar) a sus hojas de estilo descendentes.
Hojas de estilo no desplegadas
Las hojas de estilo no desplegadas son hojas de estilo que se almacenan en una ubicación en la que el nodo XMLTransformation puede acceder a ellas. Las hojas de estilo no desplegadas no las gestiona el intermediario.
Para más información, consulte Migración de hojas de estilo y archivos XML.

Despliegue de hojas de estilo o de archivos XML desplegados

Para poder configurar el nodo XMLTransformation, debe saber cómo se trabaja con hojas de estilo. Una hoja de estilo puede hacer referencia a otro archivo XML y a una hoja de estilo. Para utilizar hojas de estilo o archivos XML desplegados:
  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.

    Importe todas las hojas de estilo y los archivos XML que se van a desplegar a un proyecto de espacio de trabajo de Eclipse. Coloque las hojas de estilo descendentes dependientes de la ubicación, o los archivos XML que se van a desplegar, en la estructura de directorios correcta en relación a las hojas de estilo padre. No coloque en el espacio de trabajo de Eclipse descendientes dependientes de la ubicación que no desee desplegar.

  3. Asegúrese de que todas las referencias a los archivos sean relativas.

    Normalmente, todas las referencia a una hoja de estilo desplegada han de ser relativas, independientemente de dónde se visualizan. Una referencia a una hoja de estilo principal se debe hacer relativa respecto a la raíz del proyecto de espacio de trabajo de Eclipse pertinente.

    Hay una sola excepción: cuando especifica una hoja de estilo principal en la propiedad Nombre de hoja de estilo de un nodo XMLTransformation; 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.

    El sistema también realiza un despliegue automático de la hoja de estilo principal, junto con todas las hojas de estilo descendentes 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) descendentes dependientes de la ubicación de una hoja de estilo principal se deben hacer 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, la referencia debe cambiarse a c/d.xsl (o ./c/d.xsl).

  4. Gestione los archivos XML y las hojas de estilo hijo no desplegadas.

    Inicio del cambioLas hojas de estilo pueden hacer referencia a otras hojas de estilo. Si tiene una hoja de estilo (o archivo XML) hijo referenciada de forma relativa que no se va a desplegar, pero cuyo padre sí está desplegado, asegúrese de que la hoja de estilo hijo se coloca en la ubicación correcta bajo vía de acceso de trabajo/XSL/external (vía de acceso de trabajo/XML/external), donde vía de acceso de trabajo es la vía de acceso completa al directorio de trabajo del intermediario. Puede utilizar la variable de entorno MQSI_WORKPATH para encontrar la ubicación de la vía de acceso de trabajo del sistema; por ejemplo, en sistemas Windows, la vía de acceso de trabajo predeterminada es MQSI_WORKPATH=C:\Documents and Settings\All Users\Application Data\IBM\MQSI.Fin del cambio

    Un intermediario asocia automáticamente el árbol de almacenamiento desplegado de grupo de ejecución, vía de acceso de trabajo/XSL/external, y el árbol vía de acceso de trabajo/XML/external. Por lo tanto, si, por ejemplo, el documento b/c.xml no se encuentra en el almacenamiento desplegado del intermediario, el intermediario busca automáticamente una referencia a dicho documento en el directorio vía de acceso de trabajo/XML/external/a/b en la hoja de estilo principal desplegada a/style.xsl. También se deben utilizar referencias de vías de acceso relativas para archivos que se han desplegado pero que no están disponibles en el espacio de trabajo.

  5. Despliegue los archivos.

    Despliegue manualmente sólo aquellas hojas de estilo o archivos XML que el sistema no ha elegido (el Kit de herramientas de Message Brokers proporciona avisos acerca de estos archivos). Si pulsa Examinar para cada nodo, o proporciona la vía de acceso completa de la ubicación de la hoja de estilo en el espacio de trabajo de Eclipse, la hoja de estilo se incluye automáticamente en el archivo BAR.

    Para desplegar manualmente, añada los archivos a desplegar a un archivador de intermediario. Para obtener más información, consulte Adición de archivos a un archivador de intermediario y Adición de palabras clave a las hojas de estilo XSL.

    Para cada grupo de ejecución que utilice el nodo XMLTransformation, puede realizar una de las acciones siguientes:
    • Incluir la hoja de estilo en el directorio vía de acceso de trabajo/XSL/external del intermediario; no incluya la hoja de estilo en el archivo BAR.

      Si una hoja de estilo del directorio vía de acceso de trabajo/XSL/external comparte la misma vía de acceso y nombre con una hoja de estilo desplegada, se utiliza la hoja de estilo desplegada.

    • Incluir la hoja de estilo en el archivo BAR y desplegar el archivo BAR. Si varios archivos BAR incluyen el mismo nombre de hoja de estilo, se utiliza la hoja de estilo del último archivo BAR que se ha desplegado.
    • Desplegar la hoja de estilo en su propio archivo BAR. Si los archivos BAR utilizan nodos XMLTransformation, pero no incluyen la hoja de estilo, el Kit de herramientas de Message Brokers genera mensajes de aviso.

Configuración del nodo XMLTransformation

Cuando haya colocado una instancia del nodo XMLTransformation en un flujo de mensajes, podrá configurarlo; consulte el apartado Configurar un nodo de flujo de mensajes. Las propiedades del nodo se visualizan en la vista Propiedades. Para visualizar las propiedades del nodo en el diálogo Propiedades, pulse con el botón derecho del ratón sobre el nodo y pulse en Propiedades. (Si efectúa una doble pulsación sobre el nodo XMLTransformation, se abrirá el recuadro de diálogo Selección de XSL.)

Todas las propiedades obligatorias para las que debe especificar un valor (las que no tienen un valor predeterminado definido) están marcadas con un asterisco.

Configure el nodo XMLTransformation:

  1. Opcional: En el separador Descripción, escriba una descripción corta, una Descripción larga o ambas cosas. En este separador también puede redenominar el nodo.
  2. En el separador Hoja de estilo, para especificar una hoja de estilo utilizando propiedades del nodo, entre el valor necesario en Nombre de hoja de estilo. Este valor se ignora si se encuentra la información de la hoja de estilo en una ubicación preferida (determinada por los valores de prioridad de selección que haya establecido).
    Especifique una hoja de estilo principal utilizando uno de los métodos siguientes:
    • Pulse en Examinar al lado de Nombre de hoja de estilo. La hoja de estilo principal identificada y todas sus hojas de estilo descendentes 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 (si tanto éstas como las hojas de estilo padre están disponibles).
    • Para identificar una hoja de estilo ya desplegada, o lista para desplegarse, utilice la propiedad Nombre de hoja de estilo y deje en blanco la propiedad Directorio de hojas de estilo.
    • En el Editor de flujos de mensajes, arrastre un archivo .xslt al nodo XMLTransformation; el Nombre de hoja de estilo se establece automáticamente.
  3. En el subseparador Avanzadas:
    1. Si la identificación de la hoja de estilo está totalmente calificada, se ignora el Directorio de hojas de estilo; de lo contrario, el valor que establezca en esta propiedad se añade al principio de la especificación, independientemente de dónde se encuentre.
    2. En Nivel de memoria caché de hojas de estilo, especifique el número de hojas de estilo compiladas o analizadas que se almacenan en esta instancia del nodo; el valor predeterminado es 5. La memoria caché de las hojas de estilo se conserva mientras el nodo esté activo y se borra cuando el nodo se suprime del flujo, cuando se suprime el flujo o cuando se detiene el grupo de ejecución.

      Si cambia una hoja de estilo almacenada en memoria caché (volviendo a desplegar o sustituyendo el archivo en el sistema de archivos), el nodo XMLTransformation que contiene la memoria caché sustituye la versión almacenada en memoria caché por la versión modificada (más reciente) antes de que se procese un nuevo mensaje. No obstante, si va a cambiar varias hojas de estilo, detenga los flujos de mensajes relevantes antes de realizar cualquier cambio. Si no detiene los flujos de mensajes relevantes antes de realizar los cambios, los flujos de mensajes en ejecución no pueden garantizar el orden de los cambios, lo cual puede provocar incompatibilidad entre las hojas de estilo que se modifican. Utilice el mandato mqsireload para volver a cargar una hoja de estilo; sin embargo, este mandato no impide la incompatibilidad.

    3. Seleccione valores para las propiedades Prioridad de selección de hoja de estilo XML integrada, 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 propiedad más alto es 1. El orden predeterminado es:
      1. Prioridad de selección de hoja de estilo incorporada XML, que tiene un valor predeterminado de 1. El nodo busca los datos XML de mensajes para la información de ubicación de la 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 mensajes, que tiene un valor predeterminado de 2. El nodo busca en el entorno local asociado al mensaje actual la información de hoja de estilo almacenada en un elemento denominado ComIbmXslXmltStylesheetname.

        Este nodo estaba disponible en un SupportPac para la Versión 2.1 y se utilizó el elemento ComIbmXslMqsiStylesheetname para el nombre de la hoja de estilo, por lo tanto, 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 tiene un valor predeterminado de 3. El nodo utiliza las propiedades 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 si lo hace, el orden de prioridad establecido por el nodo es el orden predeterminado indicado anteriormente.

      Si establece un valor de 0, el nodo no busca en la ubicación correspondiente la identificación de la hoja de estilo. Si establece las tres propiedades en 0, se genera un error en tiempo de ejecución.

  4. En el separador Juego de caracteres de salida, especifique 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 mensajes, que tiene un valor predeterminado de 1. El nodo busca en el entorno local 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.

      Este nodo estaba disponible en un SupportPac para la Versión 2.1, y se utilizó el elemento ComIbmXslMqsiOutputcharset para el juego de caracteres de salida, por lo tanto, 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 tiene un valor predeterminado 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 si lo hace, el orden de prioridad establecido por el nodo es el orden predeterminado indicado anteriormente.

    Si establece el valor cero, el nodo no buscará la ubicación correspondiente para la identificación del juego de caracteres.

    Si el nodo no puede determinar el juego de caracteres de salida de ninguna de estas dos fuentes, ya sea porque no se ha establecido ningún valor o porque las prioridades de selección se han establecido en cero, se utiliza el valor predeterminado 1208 (UTF-8). (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.)

  5. En el separador Rastreo detallado, establezca la propiedad Valor de rastreo para rastrear las acciones del nodo XMLTransformation. El valor predeterminado 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:

    • z/OS platform En sistemas z/OS, el archivo se encuentra en dir_instalación/output, donde dir_instalación es el directorio en el que se ha instalado el intermediario.
    • Windows platform En sistemas Windows, si establece la vía de acceso de trabajo con el parámetro -w del mandato mqsicreatebroker, la ubicación es workpath\log . Si no ha especificado la vía de acceso de trabajo del intermediario, la ubicación es C:\Documents and Settings\All Users\Datos de programa\IBM\MQSI\common\log.
    • Linux platformUNIX platform En sistemas Linux y sistemas UNIX, el archivo se encuentra en /var/mqsi/common/log.

    Si establece el Valor de rastreo en Activado para un nodo XMLTransformation, estará activado para todos los nodos del grupo de ejecución.

    Esta propiedad está en desuso. En su lugar inicie el rastreo de usuario. El rastreo de usuario contiene la misma información de rastreo XML. Si establece Valor de rastreo en el nodo XMLTransformation, no afecta al rastreo de usuario.

Si tiene mensajes XML de gran tamaño y recibe un error de falta de memoria, utilice el mandato mqsireportproperties para ver el valor actual del almacenamiento dinámico de Java para el motor XSLT:
mqsireportproperties brokerName -e executionGroupLabel 
                                 -o ComIbmJVMManager -n jvmMaxHeapSize
Utilice el mandato mqsichangeproperties para aumentar el tamaño del almacenamiento dinámico de Java:
mqsichangeproperties brokerName -e executionGroupLabel 
                                 -o ComIbmJVMManager -n jvmMaxHeapSize -v newSize
En los ejemplos anteriores, sustituya nombreIntermediario, etiquetaGrupoEjecución y nuevoTamaño por los valores apropiados.

El valor que elija como nuevoTamaño depende de la cantidad de memoria física que tenga el sistema y de cuánto utilice Java. Normalmente es suficiente un valor entre 512 MB (536870912) y 1 GB (1073741824).

Terminales y propiedades

Los terminales del nodo XMLTransformation están descritos en la siguiente tabla.

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

Las tablas siguientes describen las propiedades de nodo. La columna con la cabecera O indica si la propiedad es obligatoria (marcada con un asterisco si tiene que entrar un valor cuando no hay definido ningún valor predeterminado); la columna con la cabecera C indica si la propiedad es configurable (puede cambiar el valor cuando añade el flujo de mensajes al archivo BAR para desplegarlo).

Las propiedades de descripción del nodo XMLTransformation están descritas en la siguiente tabla.

Propiedad O C Valor por omisión Descripción
Nombre de nodo No No El tipo de nodo El nombre del nodo.
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.

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

Propiedad O C Valor por omisión Descripción
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.

Las propiedades Avanzadas del nodo XMLTransformation están descritas en la siguiente tabla.

Propiedad O C Valor por omisión Descripción
Directorio de la hoja de estilo No   La vía de acceso donde está ubicada la hoja de estilo. Esta vía de acceso la utilizan todos los métodos de ubicación.
Nivel de memoria caché de la hoja de estilo No No 5 El número de hojas de estilo compiladas o analizadas que se almacenan en esta instancia del nodo.

Escriba un entero positivo entre (0) y 100. El valor predeterminado es 5. Si establece esta propiedad en un carácter distinto a un entero positivo, se emite un mensaje de error de excepción de configuración de flujo.

Si establece esta propiedad en (0), no se coloca en memoria caché ninguna hoja de estilo y las hojas de estilo se interpretan en lugar de compilarse.

Prioridad de selección de la hoja de estilo incorporada XML No 1 El valor de prioridad para buscar la información sobre la ubicación de la hoja de estilo 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 hoja de estilo 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 ubicación de hoja de estilo como una propiedad del nodo

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

Propiedad O C Valor por omisión Descripción
Juego de caracteres de salida No No   Valor numérico del Juego de caracteres de salida
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.

Las propiedades de Rastreo detallado del nodo XMLTransformation están descritas en la siguiente tabla.

Propiedad O C Valor por omisión Descripción
Definición de rastreo No Desactivado Inicio del cambioEsta propiedad está en desuso. En su lugar inicie el rastreo de usuario. El rastreo de usuario contiene la misma información de rastreo XSL. Si establece esta propiedad, esto no afecta al rastreo de usuario.

En versiones anteriores de WebSphere Message Broker, esta propiedad controla si el rastreo está activado o desactivado. Si el rastreo está activado, el rastreo de bajo nivel se registra en un archivo.

Fin del cambio
Avisos | Marcas registradas | Descargas | Biblioteca | Soporte | Su opinión

Copyright IBM Corporation 1999, 2009Copyright IBM Corporation 1999, 2009.
Última actualización : 2009-02-16 13:53:53

ac12490_