Utilice el nodo XSLTransform para transformar un mensaje XML en otra forma de mensaje, según las normas proporcionadas por una hoja de estilo XSL (Extensible Stylesheet Language) y para establecer el Dominio de mensajes, elConjunto de mensajes, el Tipo de mensaje y el Formato del mensaje para el mensaje generado.
Este nodo se conocía antes como nodo XMLTransformation.
Este tema contiene las secciones siguientes:
Hay tres maneras de especificar la ubicación de la hoja de estilo para aplicar esta transformación:
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 XSLTransform 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 XSLTransform se encuentra en la bandeja Transformación de la paleta y está representado en el WebSphere Message Broker Toolkit mediante el siguiente icono:
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.
No se pueden utilizar entidades externas de la vía de acceso relativa que estén definidas en la DTD de los mensajes de entrada (por ejemplo, <!DOCTYPE note [<!ENTITY chap1 SYSTEM "chap1.xml">]>). Utilice una definición de vía de acceso absoluta.
El nodo XSLTransform da soporte a diversas variables del árbol de mensajes del entorno local que se pueden utilizar para alterar dinámicamente los valores establecidos en las propiedades del nodo. Para obtener más información, consulte Utilización de las variables de entorno local para establecer prioridades.
Puede utilizar las hojas de estilo de dos maneras diferentes con el nodo XSLTransform. Para obtener más información, consulte Hojas de estilo desplegadas y no desplegadas.
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).
Puede ver información sobre los ejemplos sólo cuando utilice el Information Center que está integrado en WebSphere Message Broker Toolkit o el Information Center en línea. Puede ejecutar ejemplos sólo cuando utilice el Information Center que está integrado en WebSphere Message Broker Toolkit.
Cuando haya colocado una instancia del nodo XSLTransform 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.
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.
Los terminales del nodo XSLTransform 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 del 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 XSLTransform están descritas en la siguiente tabla.
Propiedad | O | C | Valor predeterminado | 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 XSLTransform se describen en la siguiente tabla.
Propiedad | O | C | Valor predeterminado | Descripción | Propiedad de mandato mqsiapplybaroverride |
---|---|---|---|---|---|
Nombre de la hoja de estilo | No | Sí | El nombre de la hoja de estilo, que se utiliza si se busca la
especificación de hoja de estilo en las propiedades de nodo.
Para especificar una hoja de estilo utilizando propiedades del nodo, escriba el valor necesario para el Nombre de hoja de estilo. Especifique una
hoja de estilo principal utilizando uno de los métodos siguientes:
|
stylesheetName |
Las propiedades Avanzadas del nodo XSLTransform están descritas en la siguiente tabla.
Propiedad | O | C | Valor predeterminado | Descripción | Propiedad de mandato mqsiapplybaroverride |
---|---|---|---|---|---|
Directorio de la hoja de estilo | No | Sí | 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. Si la identificación de la hoja de estilo está totalmente calificada, se hará caso omiso a la propiedad Directorio de hojas de estilo; de lo contrario, el valor que establezca en esta propiedad se añadirá al principio de la especificación, independientemente de dónde se encuentre. |
stylesheetPath | |
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. Escriba un entero positivo entre (0) y 100. El valor predeterminado es 5. Si establece esta propiedad en cero (0), no se almacena en memoria caché ninguna hoja de estilo, y las hojas de estilo se interpretan en lugar de compilarse. Si el flujo de mensajes no establece la hoja de estilo dinámicamente utilizando el entorno local, siempre se utilizará la misma hoja de estilo y cualquier valor superior a cero garantizará que se compila. Si el flujo de mensajes establece la hoja de estilo dinámicamente, puede ajustar el valor para mejorar el rendimiento. Si establece esta propiedad en un carácter distinto a un entero positivo, se emitirá un mensaje de error de excepción de configuración de flujo. La memoria caché de 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 XSLTransform 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. Si se vuelve a desplegar una hoja de estilo desplegada, o se sustituye una hoja de estilo externa en el sistema de archivos, la actualización se detecta pero no se puede sustituir una hoja de estilo que está desplegada en un archivo BAR cambiando la hoja de estilo desplegada en el disco. Para cambiar una hoja de estilo que está desplegada en un archivo BAR, debe volver a desplegar el archivo BAR. 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. Tenga el cuenta el rendimiento cuando establezca esta propiedad. Normalmente, cuando se establece esta propiedad en un número superior al valor predeterminado de 5, el rendimiento es más rápido porque hay menos probabilidades de que se produzca una acción de volver a compilar la hoja de estilo. Sin embargo, las hojas de estilo almacenadas en memoria caché utilizan el espacio de almacenamiento dinámico de la máquina virtual Java (JVM); si conserva demasiadas hojas de estilo en la memoria caché, el muy probable que la JVM se ralentice. Además, si las hojas de estilo almacenadas en memoria caché no se utilizan con regularidad y ha establecido esta propiedad en un número elevado, puede que el rendimiento se vea afectado porque la compilación de las hojas de estilo aumenta el uso del procesador. Por consiguiente, para decidir el valor más adecuado para esta propiedad, tendrá que ponderar cuántas hojas de estilo utiliza junto con el tamaño de las hojas de estilo, el tamaño del espacio de almacenamiento dinámico de JVM y el patrón de uso. Para obtener más información sobre el espacio de almacenamiento dinámico de JVM, consulte Tamaño del almacenamiento dinámico de JVM. |
Las propiedades de análisis de mensajes de salida del nodo XSLTransform se describen en la siguiente tabla.
Propiedad | O | C | Valor predeterminado | Descripción |
---|---|---|---|---|
Dominio de mensajes | No | No | BLOB | El dominio de mensajes asociado al mensaje de salida. Para asociar un analizador específico al mensaje de salida, especifique el nuevo dominio
en Dominio de mensajes. El valor predeterminado
es BLOB. Este dominio se aplica al mensaje de salida. De forma alternativa, utilice Heredar para asociar el analizador al que pertenecía el mensaje de entrada. XML está en desuso; utilice XMLNSC en su lugar. También puede especificar un analizador definido por el usuario, si es adecuado. |
Conjunto de mensajes | No | No | El conjunto de mensajes asociado al mensaje de salida. Si está utilizando el analizador MRM, o el analizador XMLNSC en modalidad de validación, seleccione el Conjunto de mensajes que desea utilizar. Esta lista se llena con conjuntos de mensajes disponibles cuando se selecciona MRM o XMLNSC como dominio. Si establece esta propiedad y a continuación actualiza las dependencias del proyecto para eliminar esta referencia de conjunto de mensajes, se emite un aviso. Actualice la propiedad Conjunto de mensajes o restaure la referencia a este proyecto de conjunto de mensajes. |
|
Tipo de mensaje | No | No | El tipo de mensaje asociado al mensaje de salida. Si está utilizando el analizador MRM, seleccione el mensaje correcto en la lista de Tipo de mensaje. Esta lista se llena con los mensajes definidos en el Conjunto de mensajes que se ha seleccionado. | |
Formato del mensaje | No | No | El formato de mensaje asociado al mensaje de salida. Si está utilizando el analizador MRM, seleccione el formato físico XML para el mensaje de salida de la lista en Formato de mensaje. Esta lista incluye todos los formatos físicos que se han definido para este Conjunto de mensajes. | |
Juego de caracteres | No | No | El valor numérico del juego de caracteres para el mensaje de salida Para especificar un conjunto de mensajes para el mensaje de salida utilizando las propiedades del nodo, especifique el valor necesario para Conjunto de mensajes. El valor que especifique debe ser numérico; por ejemplo, especifique 1200 para codificar el mensaje de salida como UTF-16. |
Las opciones de análisis del nodo XSLTransform están descritas en la siguiente tabla.
Propiedad | O | C | Valor predeterminado | Descripción |
---|---|---|---|---|
Temporización del análisis | No | No | A petición | Esta propiedad controla cuándo se analiza un mensaje de salida. Los valores válidos son A petición, Inmediato y Completo. De forma predeterminada, Temporización de análisis está establecido en A petición con lo cual el análisis del mensaje se retrasa. Para hacer que el mensaje se analice inmediatamente, consulte Análisis a petición. |
Crear árbol utilizando los tipos de datos de esquema XML | No | No | No seleccionado | Esta propiedad controla si el analizador XMLNSC crea elementos de sintaxis en el árbol de mensajes con tipos tipos de datos tomados del esquema XML. Sólo puede seleccionar esta propiedad si establece la propiedad Validar en Contenido o Contenido y valor. Para obtener más información, consulte Manipular mensajes en el dominio XMLNSC. |
Utilizar analizador compacto XMLNSC para dominio XMLNS | No | No | No | Esta propiedad controla si el analizador compacto XMLNSC se utiliza para mensajes de salida en el dominio XMLNS. Si establece esta propiedad, los datos del mensaje aparecerán bajo XMLNSC en los nodos que estén conectados al terminal de salida cuando la cabecera MQRFH2 de entrada o el Dominio sea XMLNS. |
Las propiedades de validación del nodo XSLTransform están descritas en la siguiente tabla. Establezca las propiedades de validación para que el analizador valide el cuerpo de mensajes para el Conjunto de mensajes. (Si un mensaje se propaga al terminal de anomalías del nodo, no se valida.) Si desea ver información más detallada, consulte los apartados Validar mensajes y Propiedades de validación.
Propiedad | O | C | Valor predeterminado | Descripción |
---|---|---|---|---|
Validar | No | Sí | Ninguna | Esta propiedad controla si tiene lugar la validación del mensaje de salida. Los valores válidos son Ninguno, Contenido, Contenido y valor y Heredar. |
Acción para anomalía | No | No | Excepción | Esta propiedad controla qué sucede si falla la validación del mensaje de salida. Sólo puede establecer esta propiedad si establece Validar en Contenido y valor o Contenido. Los valores válidos son Rastreo de usuario, Anotaciones de error locales, Excepción y Lista de excepciones. |
Las propiedades de Rastreo detallado del nodo XSLTransform están descritas en la siguiente tabla.
Propiedad | O | C | Valor predeterminado | Descripción |
---|---|---|---|---|
Definición de rastreo | Sí | No | Desactivado | Esta 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 trastreo está activado o desactivado. Si el rastreo está activado, el rastreo de bajo nivel se registra en un archivo. |
Propiedad | O | C | Valor predeterminado | Descripción |
---|---|---|---|---|
Sucesos | No | No | Ninguno | Los sucesos que se han definido para el nodo se visualizan en este separador. De forma predeterminada, no se define ningún suceso de supervisión en ningún nodo en un flujo de mensajes. Utilice Añadir, Editar y
Suprimir para crear, cambiar o suprimir sucesos de supervisión para el nodo; consulte Configuración de orígenes de sucesos de supervisión utilizando propiedades de supervisión para obtener detalles. Puede habilitar e inhabilitar sucesos que se muestran aquí seleccionando o deseleccionando el recuadro Habilitado. |