El prefijo "xsi" es el prefijo de espacio de nombres utilizado por convenido para el espacio de nombres de la instancia del esquema XML. Los documentos XML
pueden contener elementos que tengan un atributo xsi:type. Este comportamiento proporciona un tipo de datos explícito para el elemento.
El analizador MRM XML es sensible a los atributos xsi:type del documento XML. Modifica el tipo de datos del elemento como corresponde y añade el atributo xsi:type
al árbol del mensaje.
El grabador MRM XML es sensible a los atributos xsi:type del árbol del mensaje. Se generan los atributos xsi:type según la propiedad del conjunto de mensajes del formato físico XML Política de salida
para atributos xsi:type.
Por ejemplo, se pueden eliminar los atributos xsi:type o pueden ser
la salida de todos los elementos o la salida según normas especificadas en el estándar SOAP.
Si se ha habilitado la validación para un flujo de mensajes de
WebSphere Message Broker, la lógica de validación es sensible a los
atributos xsi:type y los utiliza para modificar la validación del elemento. También valida los valores de los atributos xsi:type utilizando las normas descritas en Esquema XML Parte 1: Estructuras en el sitio web W3C (World Wide Web Consortium).
Hay varios puntos importantes que se han de recordar cuando se analizan y escriben documentos
XML que contiene atributos xsi:type.
- Para detectar y utilizar los atributos xsi:type, el conjunto de mensajes debe estar habilitado
para el espacio de nombres. Para que un conjunto de mensajes esté habilitado para el espacio de nombres,
consulte la propiedad del conjunto de mensajes Utilizar espacios de nombres.
- Si el valor del atributo xsi:type contiene un prefijo de espacio de nombres, el analizador MRM XML amplía el prefijo
en un URI totalmente calificado. Si posteriormente el grabador MRM XML genera el atributo xsi:type, no se utiliza automáticamente el mismo prefijo para el valor. Puede controlar los prefijos que se utilizan en la salida utilizando la lista de Valores del espacio de nombres
en las propiedades del conjunto de mensajes del formato físico XML.
Si no se proporciona un prefijo, el grabador
XML asignará un prefijo predeterminado.
- Si el atributo xsi:type de un elemento no se resuelve en un tipo del modelo, el
comportamiento depende de si se ha habilitado la validación MRM. Si no se lleva a cabo la validación, MRM presupone que el tipo del elemento es el declarado en el modelo y continúa. Si se lleva a cabo la validación, se producirá una excepción de validación.
- Si se habilita la validación MRM, cualquier atributo xsi:type necesario debe estar presente
en el árbol del mensaje en el punto en que se lleva a cabo la validación. Se necesita un atributo
xsi:type cuando su valor es diferente del tipo de datos del elemento como se define en el modelo
de mensaje (esto comúnmente sucede cuando se utiliza la derivación del tipo de esquema XML).
- Si se lleva a cabo la validación en un mensaje de entrada, el analizador MRM XML
se asegura de que los atributos xsi:type aparezcan en el árbol del mensaje, como se ha descrito anteriormente.
- Si se lleva a cabo la validación en un mensaje de salida, debe asegurarse de que los atributos
xsi:type correctos aparezcan en el árbol del mensaje. Asegúrese de que sólo los
atributos xsi:type necesarios se copian del árbol del mensaje de entrada en el árbol de mensaje de salida o se han creado explícitamente en el árbol del mensaje de salida.
- Si está utilizando tipos simples que sean xsd:unions, se puede utilizar un atributo
xsi:type para dirigir el analizador MRM XML cuando se resuelve la unión.
- Si ha migrado desde una versión anterior de WebSphere Message Broker que no era sensible a los atributos xsi:type, tal vez advierta algunos cambios de comportamiento.
Por ejemplo, los atributos xsi:type ya no se tratan como atributos autodefinidos, por lo que aparecen en el árbol del mensaje con el nombre ‘type’ en lugar de ‘@type’. Si la lógica de flujos de mensajes es sensible a los atributos xsi:type en el árbol del mensaje, cambie el flujo de mensajes para satisfacer el comportamiento actual.
Para obtener más información acerca de los atributos xsi:type, consulte el documento XML Schema Part 0: Primer en el sitio web del World Wide Web Consortium (W3C).