Notas de la version de Sun Java System Message Queue 4.2

Validación de esquemas de mensajes de datos útiles XML

Esta nueva función de Información de resolución de problemas de 4.2 permite la validación del contenido de un mensaje de texto (no un objeto) XML contra un esquema XML en el momento en el que se envía el mensaje al agente. La ubicación del esquema XML (XSD) se especifica como propiedad de un destino de Message Queue. Si no se especifica ninguna ubicación XSD, la declaración DTD del documento XML se utilizará para realizar la validación DTD. (la validación XSD, que incluye la validación del intervalo de valor y el tipo de datos, es más rigurosa que la validación DTD.)

Las aplicaciones cliente que utilizan esta nueva función deben actualizarse desde la versión Java SE a JRE 1.5 o superior.

Para activar la validación del esquema XML, se deben configurar las siguientes propiedades de destinos físicos:

Tabla 1–5 Propiedades de destinos físicos para la validación del esquema XML

Propiedad 

Tipo 

Valor predeterminado 

Descripción 

validateXMLSchemaEnabled

Booleano 

false

¿Se ha activado la validación del esquema XML? 

Si está configurada en false o no está configurada, la validación del esquema XML no se activará para el destino.

XMLSchemaURIList

String 

nulo 

Lista separada por espacios de cadenas URI del documento del esquema XML (XSD)  

Los URI señalan la ubicación de uno o más XSD para su uso en la validación del esquema XML, si está activada.  

Utilice comillas dobles en este valor si se especifican varios URI. 

Ejemplo: 

“http://foo/flap.xsd http://test.com/test.xsd”

Si esta propiedad no está configurada o es nula y la validación XML está activada, la validación XML se realiza a través de un DTD especificado en el documento XML. 

reloadXMLSchemaOnFailure

Booleano 

false

¿Se ha activado la recarga del esquema XML en caso de fallo? 

Si está configurada en false o no está configurada, el esquema no se recargará si la validación no se realiza correctamente. 

Al activar la validación XML, el tiempo de ejecución del cliente de Información de resolución de problemas de intentará validar un mensaje XML contra los XSD especificados (o contra el DTD, si no se especifica el XSD) antes de enviarlo al agente. Si el esquema especificado no puede ubicarse o el mensaje no puede validarse, el mensaje no se enviará, y se lanzará una excepción.

Las propiedades de la validación XML se pueden configurar en el momento de la creación del destino o en el momento de la actualización a través de los comandos imqcmd create dst o imqcmd update dst, respectivamente. Las propiedades de la validación XML deben configurarse cuando el destino esté inactivo: es decir, cuando no cuente con consumidores o productores, y cuando no haya mensajes en el destino.


Nota –

Si no se puede acceder a un XSD durante el tiempo de ejecución, es posible que sea necesario modificar XMLSchemaURIList mientras esté activo el destino.


Si alguna de las propiedades de la validación XML se configura mientras que un destino está activo (por ejemplo, si un productor está conectado al destino), el cambio no tendrá lugar hasta que el productor se vuelva a conectar al agente. De igual forma, si se modifica un XSD, como resultado de la modificación de los requisitos de la aplicación, todas las aplicaciones cliente que produzcan mensajes XML basados en el XSD modificado deberán reconectarse al agente.

Si la propiedad reloadXMLSchemaOnFailure está configurada en true y la validación XML no se realiza de la forma correcta, el tiempo de ejecución del cliente de Información de resolución de problemas de intentará recargar el XSD antes de volver a intentar validar un mensaje. El tiempo de ejecución del cliente lanzará una excepción si la validación no se realiza correctamente al utilizar el SXD recargado.