Este tema contiene las secciones siguientes:
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:
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 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.
El nodo XMLTransformation se representa en el entorno de trabajo mediante el icono siguiente:
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.
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).
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.
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.
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:
<?xml-stylesheet type="text/xsl" href="foo.xsl"?>
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.
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.
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 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.
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.
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.)
La información de rastreo se graba en un archivo de rastreo XMLTTrace.log:
Si activa el rastreo detallado en un nodo XMLTransformation, está activado para todos los nodos del grupo de ejecución.
Pulse Cancelar para cerrar el diálogo y descartar todos los cambios que ha realizado en las propiedades.
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.El 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).
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 | Sí | 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 | Sí | 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 | Sí | 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 | Sí | 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 | Sí | 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 | Sí | 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 | Sí | 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 | Sí | 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.