Espacios de nombres del modelo de mensaje

Los espacios de nombres proporcionan un método para calificar nombres de objetos.

Los documentos de instancias XML y los esquemas XML pueden utilizar espacios de nombres.

Un documento de instancia XML individual puede contener elementos y atributos que estén definidos para varias aplicaciones y, posiblemente, los utilicen varias 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. Por lo tanto, los espacios de nombres ayudan en el desarrollo de una biblioteca de Esquemas XML que se puede desarrollar de forma independiente. Si el nombre del espacio de nombres utilizado para un esquema XML es 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). Para cumplir con su finalidad, un URI debe ser exclusivo. Es posible que esté más familiarizado con el concepto de URL (Universal Resource Locator). Normalmente, los URI utilizan la misma sintaxis que los URL, pero 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. También se puede definir un espacio de nombres predeterminado utilizando un atributo xmlns. Si se define un espacio de nombres predeterminado, cualquier elemento o atributo que no tenga prefijo se calificará con el espacio de nombres predeterminado. Si no se define ningún espacio de nombres predeterminado, 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. No obstante, una vez habilitados 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. Cuando crea 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. Para hacerlo, importe o incluya un archivo de definición de mensajes dentro de otro archivo de definición de mensaje.

Análisis de mensajes y flujos de mensajes
Los analizadores de WebSphere Message Broker que reconocen el espacio de nombres reconocen los nombres con prefijos de los mensajes XML que analizan y los correlacionan internamente con el espacio de nombres correcto. Los elementos y atributos pueden estar calificados o pueden no estar calificados con un espacio de nombres, como se describe en la sección del 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. Por lo tanto, para que un elemento o atributo de un mensaje coincida con el diccionario, el nombre y el espacio de nombres deben coincidir.

Se proporciona soporte que le permite especificar espacios de nombres cuando escribe ESQL o Java. No es necesario escribir ESQL o JAVA que reconozca los espacios de nombres, si no se están utilizando espacios de nombres. No obstante, 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 o Java que reconozca los 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. En Java, las expresiones XPath se utilizan para hacer referencia a los elementos.

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 de XML, el archivo de definición de mensajes que se crea está 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 o Java que reconozca los espacios de nombres para procesar un mensaje XML que se analiza con el diccionario generado a partir de 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 predeterminado 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 MRM no XML.
    • 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.

Información adicional sobre XML

En el sitio Web World Wide Web Consortium (W3C) consulte:

Avisos | Marcas registradas | Descargas | Biblioteca | Soporte | Su opinión

Copyright IBM Corporation 1999, 2009Copyright IBM Corporation 1999, 2009.
Última actualización : 2009-02-16 13:54:12

ad00820_