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.
  3. Inicio del cambioPuede establecer un valor en la carpeta LocalEnvironment. Debe establecer este valor (por ejemplo, en un nodo Compute) antes del nodo XMLTransformation. 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.Fin del cambio

Inicio del cambioSe 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 memoria caché de nodo (propiedad de nodo Nivel de memoria caché de hojas de estilo) es mayor que 0. Si el XSLT se almacena en memoria caché, esto ofrece una mejora del rendimiento porque el XSLT no se analiza cada vez que se utiliza.Fin del cambio

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

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.

Consulte el Ejemplo XMLT para obtener más detalles sobre cómo utilizar el nodo XMLTransformation.

Inicio del cambio

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 archivador de intermediario (bar) y despliega en sistemas de destino. Las hojas de estilo desplegadas se gestionan mediante WebSphere Message Broker. La posibilidad de desplegar hojas de estilo de esta manera es una novedad de la Versión 6.0. 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 almacena en una ubicación donde el nodo XMLTransformation puede acceder a ellas. Las hojas de estilo no desplegadas no se gestionan mediante WebSphere Message Broker.
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

Inicio del cambioAntes de configurar el nodo XMLTransformation, necesita entender cómo se trabaja con hojas de estilo. (Una hoja de estilo puede hacer referencia a otro archivo XML así como a una hoja de estilo.) Para utilizar hojas de estilo o archivos XML desplegados, debe realizar los pasos siguientes:
  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 van a desplegar deben importarse a un proyecto de espacio de trabajo de Eclipse. Las hojas de estilo o los archivos XML descendentes dependientes de ubicación que se van a desplegar deben colocarse en la estructura de directorios correcta en relación a las hojas de estilo padre. No debería poner en el espacio de trabajo de Eclipse descendientes dependientes de ubicación que no desea desplegar.
  3. Inicio del cambioAsegúrese de que todas las referencias a los archivos sean relativas: Generalmente, todas las referencia a una hoja de estilo desplegada se deben hacer relativas, independientemente de dónde aparecen. 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. 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).

    Fin del cambio
  4. Ocúpese de las hojas de estilo o archivos XML hijo no desplegados: Las 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 acceso trabajo intermediario/XSL/external (vía acceso trabajo intermediario/XML/external). Un intermediario asocia automáticamente el árbol de almacenamiento desplegado de grupo de ejecución vía acceso trabajo intermediario/XSL/external y el árbol vía acceso trabajo intermediario/XML/external. Esto significa, por ejemplo, que el intermediario realiza una búsqueda automáticamente en el directorio vía acceso trabajo intermediario/XML/external/a/b de una referencia de documento (b/c.xml) en la hoja de estilo principal desplegada a/style.xsl si b/c.xml no se encuentra en el almacenamiento desplegado del intermediario. 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. Inicio del cambioDespliegue los archivos: Necesita desplegar manualmente únicamente aquellas hojas de estilo o archivos XML que el sistema no ha elegido (las herramientas proporcionan 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 (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.

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

      Si una hoja de estilo del directorio vía acceso trabajo intermediario/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 emite mensaje de aviso.
    Fin del cambio
    Fin del cambio
Fin del cambio
Fin del cambio

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 predeterminado 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 de 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. Inicio del cambioPrioridad de selección de XML integrado, que tiene un valor predeterminado de 1. El nodo busca en los datos XML del mensaje información sobre la ubicación de la hoja de estilo Por ejemplo, los datos XML pueden contener:
      <?xml-stylesheet type="text/xsl" href="foo.xsl"?>
      Fin del cambio
    2. Prioridad de selección de entorno de mensaje, 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.

      Dado que este nodo 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 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. Inicio del cambioEn 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 por omisión es 5. La memoria caché de hojas de estilo se mantiene durante la vida del nodo. Se borra cuando se suprime el nodo 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 y puede haber incompatibilidad entre las hojas de estilo que se modifican. Puede utilizar el mandato mqsireload para volver a cargar una hoja de estilo pero el mandato no evita la incompatibilidad.

    Fin del cambio
  5. Seleccione el juego de caracteres de salida en el navegador del diálogo de 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 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.

      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 navegador del diálogo de propiedades 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.

  9. Inicio del cambioDetenga y reinicie el grupo de ejecución.Fin del cambio
Si está manejando mensajes XML de gran tamaño y recibe un error de falta de memoria, puede utilizar el mandato mqsireportproperties para ver el valor actual del tamaño de almacenamiento dinámico de Java para el motor XSLT y el mandato mqsichangeproperties para incrementarlo:
mqsireportproperties brokerName -e executionGroupLabel -o ComIbmJVMManager -n jvmMaxHeapSize
mqsichangeproperties brokerName -e executionGroupLabel -o ComIbmJVMManager -n jvmMaxHeapSize -v newSize
sustituyendo brokerName, executionGroupLabel, y newSize por los valores apropiados.

Inicio del cambioEl valor que elija para newSize depende de la cantidad de memoria física que tenga el sistema y de lo mucho que utilice Java. Se recomienda un valor en el rango de 512 MB (536870912) a 1 GB (1073741824).Fin del cambio

Terminales y propiedades

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

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 siguientes tablas describen las propiedades del nodo; la columna O indica si la propiedad es obligatoria (marcada con un asterisco en el diálogo de propiedades si se ha de entrar un valor cuando no hay definido ningún valor por omisión), la columna C indica si la propiedad es configurable (se puede cambiar el valor cuando se añade 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 O C Valor por omisión Descripción
Prioridad de selección de XML integrado 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 mensaje 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 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 memoria caché de hojas 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 O C Valor por omisión Descripción
Prioridad de selección de entorno de mensaje 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 O 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 O 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.

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 decodificar el mensaje.

Avisos | Marcas registradas | Descargas | Biblioteca | Soporte | Su opinión
Copyright IBM Corporation 1999, 2006 Última actualización: 22/08/2006
ac12490_