Un archivo de esquema de modelo de mensaje o un archivo de definición de mensaje puede reutilizar objetos de modelo de mensaje definidos en otro archivo.
El esquema XML proporciona dos mecanismos para reutilizar archivos de definición de mensaje: import y include. Los espacios de nombres de los dos archivos determinan si se debería utilizar el mandato import o include:
El archivo de destino tiene un espacio de nombres de destino | El archivo de destino no tiene un espacio de nombres de destino | |
---|---|---|
El archivo padre tiene un espacio de nombres de destino | xsd:import | xsd:include1 |
El archivo padre tiene un espacio de nombres de destino | xsd:import | xsd:include |
Cuando se utilizan import o include, se pueden utilizar los objetos globales del archivo de destino en el archivo padre. Por ejemplo, es posible que a un elemento del archivo padre se le asigne un tipo complejo definido en el archivo de destino.
El espacio de nombres de los objetos del archivo de destino se conserva en el archivo padre, con la excepción indicada en la tabla anterior de un archivo de espacio de nombres de destino incluido un archivo de espacio de nombres de tipo notarget. A esta excepción se le denomina a veces el efecto de espacio de nombres "camaleónico".
Un archivo de esquema de modelo de mensaje puede importar o incluir otro archivo en la misma aplicación o biblioteca, o en una biblioteca de Message Broker distinta. Un archivo de definición de mensajes puede importar o incluir otro archivo sólo si dicho archivo está en el mismo conjunto de mensajes.
El Esquema XML proporciona una variación de xsd:include denominada xsd:redefine, que está soportada cuando se utilizan archivos de esquema de modelo de mensaje, pero no cuando se utilizan archivos de definición de mensaje. Se ofrece un arreglo rápido para convertir las apariciones de xsd:redefine en xsd:include cuando se utilizan archivos de definición de mensaje.