Cuando se importa un esquema XML a un conjunto de mensajes que soporta los espacios de nombres, las construcciones indicadas más abajo se aceptan, pero se muestra un mensaje de error en la lista de tareas ya que no están totalmente soportadas.
A continuación se proporciona una lista de estas declaraciones de esquema:
A continuación se muestra un ejemplo de cada una de estas construcciones:
<?xml version="1.0" encoding="UTF-8"?> <schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.ibm.com" xmlns:ibm="http://www.ibm.com"> <!-- Unsupported feature: redefine --> <redefine schemaLocation="test.xsd"/> </schema>
Cuando se importa un esquema XML a un conjunto de mensajes que soporta los espacios de nombres, las construcciones indicadas más abajo se aceptan, pero se ignoran y no se despliegan en el intermediario. Cuando el usuario intenta importar un esquema que contiene una o varias de estas construcciones, se emite un aviso que indica que se ignorarán. Podrá suprimir estas construcciones, pero no hay propiedades que se puedan configurar para las mismas.
Si extrae el modelo lógico para el mensaje (por ejemplo utilizando el recurso de generación de esquema), estas construcciones se ignoran y no se incluyen en el esquema de salida.
A continuación se proporciona una lista de estas declaraciones de esquema:
A continuación se muestra un ejemplo de cada una de estas construcciones:
<?xml version="1.0" encoding="UTF-8"?> <schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.ibm.com" xmlns:ibm="http://www.ibm.com"> <!-- Accepted feature: unique --> <element name="element1" type="string"> <unique name="unique1"> <selector xpath="path1"></selector> <field xpath="path1"></field> </unique> </element> <!-- Accepted feature: key --> <element name="element2" type="string"> <key name="key1"> <selector xpath="path1"></selector> <field xpath="path1"></field> </key> </element> <!-- Accepted feature: keyref --> <element name="element3" type="string"> <keyref name="keyref1" refer="ibm:key1"> <selector xpath="path1"></selector> <field xpath="path1"></field> </keyref> </element> </schema>
El problema se produce cuando un esquema XML que tiene un espacio de nombres de destino incluye otro esquema XML que no tiene ningún espacio de nombres de destino. La Ubicación de esquema creada en el modelo de mensaje para la inclusión (include) sólo especifica el nombre de archivo. Esto no tiene en cuenta que los archivos de definición de mensajes de inclusión e incluidos están en directorios diferentes en el modelo de mensaje.
Puede arreglar el problema desde el área de trabajo seleccionando el separador Propiedades del archivo de definición de mensajes de inclusión en el Editor de definiciones de mensajes. Suprima la entrada include que tiene la ubicación de esquema incorrecta y, a continuación, añada otra entrada include, seleccionando el archivo correcto en el menú Archivo.
El usuario tiene la opción de aceptar, rechazar o modificar estas construcciones basándose en las preferencias establecidas por el usuario en la página de preferencias del Importador de esquema XML (o el archivo de opciones de importación mqsicreatemsgdefs).
Si el usuario especifica "rechazar", cuando se encuentra la construcción, se detiene la importación y se emite un error.
Si el usuario especifica "modificar" (el valor por omisión), cuando se encuentra la construcción, el importador modifica el archivo de definición de mensajes resultante del modo siguiente:
Tenga en cuenta que, por motivos de compatibilidad, estas modificaciones son las modificaciones equivalentes que realizaba el mandato de importador de esquema XML de la Versión 2.1.
Si el usuario especifica "aceptar", cuando se encuentra la construcción, se importa la construcción como está. Esto puede dar como resultados errores de lista de tareas dependiendo de la construcción, como se ha descrito anteriormente para conjuntos de mensajes con soporte de espacios de nombres.
A continuación se muestra un ejemplo de cada una de estas construcciones:
<?xml version="1.0" encoding="UTF-8"?> <schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.ibm.com" xmlns:ibm="http://www.ibm.com"> <!-- Supported feature: redefine --> <redefine schemaLocation="test.xsd"/> <!-- Supported feature: import --> <import schemaLocation="test1.xsd" namespace="http://www.ibm1.com"/> <!-- Supported feature: list --> <simpleType name="type1"> <list itemType="string" /> </simpleType> <!-- Supported feature: union --> <simpleType name="type2"> <union memberTypes="string" /> </simpleType> <!-- Supported feature: abstract complex type --> <complexType name="type3" abstract="true"></complexType> <!-- Supported feature: abstract element --> <element name="element" type="string" abstract="true"></element> </schema>
La lista de construcciones y la acción tomada es la misma que para un conjunto de mensajes con soporte de espacio de nombres, como se ha descrito anteriormente.
Cuando se importa un esquema XML a un conjunto de mensajes que no soporta los espacios de nombres, no se puede importar un documento de esquema que tenga un espacio de nombres de destino que no está calificado con un prefijo. Por ejemplo:
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.ibm.com" xmlns="http://www.ibm.com"> </xsd:schema>