Espacios de nombres del modelo de mensaje

Los documentos de instancias XML y los Esquemas XML pueden utilizar espacios de nombres. Los espacios de nombres proporcionan un método para calificar nombres de objetos.

Un documento de instancia XML individual puede contener elementos y atributos que estén definidos para varias aplicaciones y, posiblemente, utilizados por dichas aplicaciones. Es posible que dos elementos o atributos diferentes del mismo documento necesiten el mismo nombre. Las aplicaciones individuales necesitan ser capaces de reconocer los elementos y atributos que están destinados a procesar. En circunstancias como ésta, se puede distinguir una definición de otra calificando cada elemento con un espacio de nombres diferente. Esto evita problemas de colisión de nombres y reconocimiento equivocado.

Los Esquemas XML pueden definir un espacio de nombres de destino. Los elementos globales, los atributos, los grupos y los tipos definidos en un Esquema XML se califican mediante el espacio de nombres de destino si éste se ha definido. Opcionalmente, los elementos locales y los atributos también se pueden calificar mediante el espacio de nombres de destino. De este modo, los espacios de nombres ayudan en el desarrollo de una biblioteca de Esquemas XML que se puede desarrollar de forma independiente. Siempre que el nombre de espacio de nombres utilizado para un Esquema XML sea exclusivo, un desarrollador no tendrá que preocuparse de las colisiones de nombres con objetos definidos en otros Esquemas XML.

El ámbito de un espacio de nombres excede el ámbito del documento que lo contiene y se identifica por un URI (Uniform Resource Identifier - Identificador uniforme de recursos). Para llevar a cabo su tarea, un URI debe ser exclusivo. Es posible que esté más familiarizado con el concepto de URL (Universal Resource Locator - Localizador universal de recursos). Normalmente, los URI utilizan la misma sintaxis que los URL, aunque la definición de URI es más amplia que la especificación de un URL. Este es un ejemplo de un URI: http://mycompany.com/xml_schema

Un prefijo de espacio de nombres se declara como una abreviación del nombre de URI completo y se utiliza para calificar todos los elementos que pertenecen a dicho espacio de nombres. El prefijo que debe sustituir el espacio de nombres en un documento de instancia XML o un Esquema XML se especifica utilizando un atributo xmlns o xmlnsc. También se puede definir un espacio de nombres por omisión utilizando un atributo xmlns o xmlnsc. Si se define un espacio de nombres por omisión, cualquier elemento o atributo que no tenga prefijo se calificará con el espacio de nombres por omisión. Si no se define ningún espacio de nombres por omisión, cualquier elemento o atributo que no tenga prefijo no se calificará con un espacio de nombres.

El modelo de mensaje
El modelo de mensaje proporciona la posibilidad de soportar espacios de nombres en conjuntos de mensajes. Sin embargo, puede elegir si desea habilitar o inhabilitar espacios de nombre para el conjunto de mensajes. Si elige inhabilitar los espacios de nombres al crear el conjunto de mensajes, puede habilitarlos posteriormente. Sin embargo, una vez que haya habilitado los espacios de nombres para un conjunto de mensajes, no los podrá inhabilitar.

Un solo conjunto de mensajes que tenga habilitados los espacios de nombres puede contener varios espacios de nombres diferentes. Cada espacio de nombres se representa mediante un archivo de definición de mensajes diferente. Al crear un archivo de definición de mensajes, puede elegir si va a tener un espacio de nombres asociado o si va a estar en el espacio de nombres notarget. Si elige asociar un espacio de nombres con un archivo de definición de mensajes, también deberá elegir un prefijo.

Si el archivo de definición de mensajes tiene un espacio de nombres asociado, se califican los siguientes objetos globales con el espacio de nombres:

  • Elementos
  • Atributos
  • Tipos simples
  • Tipos complejos
  • Grupos
  • Grupos de atributos

Opcionalmente, se puede calificar elementos locales y atributos con el espacio de nombres.

Los objetos definidos en un archivo de definición de mensajes pueden hacer referencia a objetos de otros archivos de definición de mensajes del mismo conjunto de mensajes. Esto se lleva a cabo importando o incluyendo un archivo de definición de mensajes dentro de otro.

El formato físico XML
El espacio de nombres asociado con un archivo de definición de mensajes forma parte de la capa lógica del modelo de mensaje. Por consiguiente, no depende de que exista un formato físico XML. Sin embargo, si tiene un formato físico XML, se utiliza la información de espacio de nombres de la capa lógica para rellenar algunas de las propiedades del formato físico XML. Si se habilitan espacios de nombres para un conjunto de mensajes, en formato físico XML, se mantiene una tabla de pares de URI/prefijo de espacio de nombres. Esta tabla se llena inicialmente con los espacios de nombres de todos los archivos de definición de mensajes con los prefijos que tenían cuando se han creado.

Si está utilizando WebSphere Message Broker y el conjunto de mensajes tiene establecidos espacios de nombres, el intermediario no almacena los valores de los atributos xmlns xmlnsc en el árbol cuando analiza un documento de instancia de XML. Tampoco almacena los valores de los atributos Ubicación de esquema y No hay ninguna ubicación del esquema de espacio de nombres. Esto se debe a que cuando se graba un documento XML, el Intermediario vuelve a generar esta información a partir de las propiedades del formato físico XML del conjunto de mensajes.

Si está utilizando WebSphere Message Broker, el Dominio MRM usa la tabla de pares de URI/prefijo de espacio de nombres al producir un mensaje XML. Los elementos y atributos que están calificados por un espacio de nombres llevan el prefijo correspondiente de la tabla. El Intermediario también gestiona la salida de los atributos xmlns xmlnsc correspondientes que correlacionan los prefijos con los espacios de nombres. Puede elegir si los atributos xmlns o xmlnsc para todas las entradas de la tabla de URI/prefijos de espacio de nombres se deben producir al principio del documento o si sólo se deben producir en el documento cuando son necesarios.

Si se habilitan espacios de nombres para un conjunto de mensajes, en formato físico XML, hay una tabla de ubicaciones de esquema que correlaciona los URI de espacio de nombres con los nombres de archivo. Puede añadir entradas en esta tabla y también puede correlacionar un nombre de archivo con el espacio de nombres notarget. Si está utilizando WebSphere Message Broker, se usa esta tabla para producir los atributos Ubicación de esquema y No hay ubicación del esquema de espacio de nombres al principio del documento XML.

Análisis de mensajes y ESQL
Si está utilizando WebSphere Message Broker, los analizadores de dominio MRM y dominio XMLNS y XMLNSC reconocen los nombres con prefijo en los mensajes XML que analizan y los correlacionan internamente con el espacio de nombres correcto. Los elementos y atributos del diccionario generado a partir del modelo de mensaje se pueden calificar o no calificar con un espacio de nombres, tal como se describe en la sección de modelo de mensaje.

Si está utilizando el formato XML en el dominio de MRM, los elementos o atributos se comparan basándose en el espacio de nombres del diccionario cuando el mensaje analizado se compara con el diccionario generado a partir del modelo de mensaje. De este modo, para que un elemento o atributo de un mensaje coincida con el diccionario, el nombre y el espacio de nombres deben coincidir.

Si está utilizando WebSphere Message Broker, se proporciona soporte para permitirle especificar espacios de nombres al escribir ESQL. No es necesario escribir ESQL, que está preparado para los espacios de nombres, si no se están utilizando espacios de nombres. Sin embargo, si decide utilizar espacios de nombres, los archivos de definición de mensajes pueden tener como destino cualquier espacio de nombres que elija y será necesario escribir ESQL preparado para espacios de nombres. El espacio de nombres en el que reside un elemento se almacena en el árbol de mensaje cuando se analiza. Se trata de una propiedad lógica y se conserva independientemente del formato físico en el que se analicen y escriban los mensajes. Se ha añadido sintaxis nueva a ESQL para que sea más fácil hacer referencia a los espacios de nombres de elementos utilizando prefijos definidos.

Importación desde otros formatos
El modelo de mensaje le permite crear archivos de definición de mensajes a partir de otros formatos importándolos al Kit de herramientas de Message Brokers.
  • Si importa un archivo DTD XML, el archivo de definición de mensajes creado estará en el espacio de nombres notarget.
  • Cuando importe el archivo de Esquema XML, el espacio de nombres de destino del archivo de definición de mensajes creado dependerá de que se hayan habilitado espacios de nombres para el conjunto de mensajes.
    • Si se han habilitado espacios de nombres, el espacio de nombres de destino del archivo de definición de mensajes creado será el espacio de nombres de destino del Esquema XML que se está importando.
    • Si se han inhabilitado los espacios de nombres para el conjunto de mensajes, el archivo de definición de mensajes creado estará en el espacio de nombres notarget. Este tipo de importación no proporciona soporte completo para los espacios de nombres. Si está utilizando WebSphere Message Broker, no tendrá que escribir ESQL de espacio de nombres para procesar un mensaje XML analizado con el diccionario generado desde este modelo de mensaje. Existen razones por las que es posible que desee llevar esto a cabo, consulte Importación del esquema XML en conjuntos de mensajes con los espacios de nombres inhabilitados
  • Cuando importe el archivo del libro de copias COBOL o un archivo de cabecera C, el espacio de nombres de destino del archivo de definición de mensajes creado dependerá de que se hayan habilitado espacios de nombres para el conjunto de mensajes.
    • Si se han habilitado espacios de nombres, el espacio de nombres de destino del archivo de definición de mensajes creado será el espacio de nombres notarget. Este espacio de nombres por omisión se puede alterar temporalmente especificando un espacio de nombres de destino en el asistente para Nuevo archivo de definición de mensaje. Existen razones por las que es posible que desee llevar esto a cabo, consulte Espacios de nombre con mensajes no XML.
    • Si se han inhabilitado espacios de nombres para el conjunto de mensajes, entonces el archivo de definición de mensajes creado estará en el espacio de nombres notarget

Información adicional sobre XML

En el sitio Web World Wide Web Consortium (W3C) , consulte también:

Avisos | Marcas registradas | Descargas | Biblioteca | Soporte | Su opinión
Copyright IBM Corporation 1999, 2006 Última actualización: 22/08/2006
ad00820_