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:
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 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:
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.
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.
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.
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.
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).
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 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.
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.
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.
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.
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:
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.
<?xml-stylesheet type="text/xsl" href="foo.xsl"?>
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.
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.
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.
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.)
La información de rastreo se graba en un archivo de rastreo XMLTTrace.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.
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).
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 | Sí | 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 | 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. | |
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 | 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 mensajes | 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 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 | 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. |
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 | Sí | No | Desactivado | ![]() 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. ![]() |