Espacios de nombres

Los documentos de instancias XML y los esquemas XML pueden utilizar los espacios de nombres. Los espacios de nombres proporcionan un método para calificar los nombres de archivos artifact.

Un solo documento de instancia XML puede contener elementos y atributos que se definen y probablemente utilizan varias aplicaciones. Dos elementos o atributos diferentes del mismo documento pueden requerir el mismo nombre. Las aplicaciones individuales deben reconocer los elementos y atributos que están diseñados para procesar. En circunstancias de este tipo, las definiciones se puede diferenciar entre sí calificando cada elemento con un espacio de nombres diferente. Esto evita problemas de colisión de nombres y errores de reconocimiento.

Los esquemas XML pueden definir un espacio de nombres de destino. Los elementos globales, los atributos, grupos y tipos definidos en un esquema XML se califican mediante el espacio de nombres de destino si se ha definido. Opcionalmente, los atributos y elementos locales se pueden calificar también mediante el espacio de nombres de destino. De este modo, los espacios de nombres ayudan a desarrollar una biblioteca de esquemas XML que se pueden desarrollar de forma independiente. Siempre que el nombre del espacio de nombres que se utiliza para un esquema XML sea exclusivo, el desarrollador no tiene que preocuparse de si hay conflictos de nombres con los archivos artifact definidos en otros esquemas XML.

El ámbito de un espacio de nombres va más allá del documento que lo contiene y se identifica mediante un URL (Uniform Resource Identifier). Para este fin es necesario que sea exclusivo. Puede que esté más familiarizado con el concepto de URL (Universal Resource Locator). Los URI suelen utilizar la misma sintaxis que un URL, aunque la definición del URI es más amplia que la especificación de un URL. Este es un ejemplo de un URI: http://mycompany.com/xml_schema

Se declara un prefijo de espacio de nombres como una abreviatura del nombre de URI completo y se utiliza para calificar todos los elementos pertenecientes a dicho espacio de nombres. El prefijo que se ha de sustituir para un espacio de nombres en un documento de instancia XML o esquema XML se especifica utilizando el atributo xmlns. También se puede definir un espacio de nombres por omisión utilizando un atributo xmlns. Si se define un espacio de nombres por omisión, cualquier elemento o atributo que no tenga prefijo se califica con el espacio de nombres por omisión. Si no se define un espacio de nombres por omisión cualquier elemento o atributo que no tenga prefijo no estará calificado con el espacio de nombres.

El modelo de mensaje
El modelo de mensaje permite dar soporte a espacios de nombres en conjuntos de mensajes. No obstante, puede decidir si desea habilitar o inhabilitar los espacios de nombres para el conjunto de mensajes. Si selecciona que se inhabiliten los espacios de nombres cuando crea el conjunto de mensajes puede habilitar espacios de nombres en algún punto más adelante. No obstante, cuando haya habilitado los espacios de nombres para un conjunto de mensajes no puede inhabilitar los espacios de nombres.

Un conjunto de mensajes que tenga habilitado los espacios de nombres puede contener varios espacios de nombres diferentes. Cada uno de los espacios de nombres se representa mediante un archivo de definiciones de mensajes. Cuando crea un archivo de definiciones de mensajes puede decidir si tiene asociado un espacio de nombres o si será un espacio de nombres de tipo notarget. Si opta por asociar un espacio de nombres a un archivo de definiciones de mensajes también debe seleccionar un prefijo.

Si el archivo de definiciones de mensajes tiene asociado un espacio de nombres los siguientes archivos artifact globales estarán calificados con el espacio de nombres:

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

Opcionalmente, los atributos y elementos locales se pueden calificar también mediante el espacio de nombres.

Los archivos artifact de un archivo de definiciones de mensajes pueden hacer referencia a archivos artifact de otros archivos de definiciones de mensajes del mismo conjunto de mensajes. Esto se consigue importando o incluyendo un archivo de definiciones de mensajes dentro de otro.

El formato físico XML
El espacio de nombres asociado a un archivo de definiciones de mensajes forma parte de la capa lógica del modelo de mensajes. Por lo tanto, no depende de que exista un formato físico XML. No obstante, si tiene un formato físico XML, la información del espacio de nombres de la capa lógica se utiliza para rellenar algunas de las propiedades del formato físico XML. Si se habilitan los espacios de nombres para un conjunto de mensajes, en formato físico XML se mantiene una tabla de parejas de URI/prefijo del espacio de nombres. Esta tabla se rellena inicialmente con los espacios de nombres de todos los archivos de definiciones de mensajes con sus prefijos cuando se crean.

Si está utilizando WebSphere Business Integration Message Broker y el conjunto de mensajes tiene habilitados los espacios de nombres, el intermediario no almacena los valores de ningún atributo xmlns del árbol cuando analiza un documento de instancia XML. Tampoco almacena ningún valor de cualquier atributo Ubicación de esquema y No hay ninguna ubicación del esquema de espacio de nombres. Esto es debido 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 Business Integration Message Broker la tabla de los pares de URI/prefijo del espacio de nombres los utiliza el dominio MRM para generar la salida de un mensaje XML. Los elementos y atributos calificados mediante un espacio de nombres tienen el prefijo correspondiente de la tabla. El intermediario también gestiona la salida de los atributos xmlns correspondientes que correlacionan los prefijos con espacios de nombres. Puede decidir si los atributos xmlns de todas las entradas de la tabla de URI/prefijo del espacio de nombres figuran en la salida al principio del documento o si solamente figuran en la salida del documento cuando sea necesario.

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

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

Si está utilizando un formato XML en el dominio MRM, los elementos o atributos se correlacionan con el espacio de nombres del diccionario cuando el mensaje analizado se correlaciona 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 deben coincidir tanto su nombre como su espacio de nombres.

Si está utilizando WebSphere Business Integration Message Broker, se proporciona soporte para especificar espacios de nombres cuando escribe ESQL. No es necesario escribir ESQL, que reconoce el espacio de nombres, si no está utilizando espacios de nombres. No obstante, si decide utilizar espacios de nombres, los archivos de definiciones de mensaje puede tener como destino cualquier espacio de nombres que seleccione y tendrá que escribir ESQL que reconozca el espacio de nombres. El espacio de nombres en el que reside un elemento se almacena en el árbol de mensajes cuando se analiza. Es una propiedad lógica y se conserva independientemente del formato físico en que se analizan y escriben estos mensajes. ESQL contiene ahora una sintaxis adicional con la que resulta más fácil hacer referencia a espacios de nombres de elementos utilizando prefijos definidos.

Importación desde otros formatos
El modelo de mensaje le permite crear archivos de definiciones de mensajes a partir de otros formatos importándolos en el modelo de mensaje. Si importa desde un archivo de cabeceras C, un Libro de copias COBOL o un archivo DTD de XML, el archivo de definiciones de mensajes creado estará en el espacio de nombres notarget. Cuando importa el archivo del esquema XML, el espacio de nombres de destino del archivo de definiciones de mensajes creado dependerá de si se han habilitado los espacios de nombres para el conjunto de mensajes. Si se han habilitado los espacios de nombres, el espacio de nombres de destino del archivo de definiciones de mensajes que crea el proceso de importación será el espacio de nombres de destino del esquema XML que se va a importar.

No obstante, si se inhabilitan los espacios de nombres para el conjunto de mensajes, el archivo de definiciones de mensajes estará en el espacio de nombres notarget independientemente del espacio de nombres de destino del archivo del esquema XML que se va a importar. Este tipo de importación no proporciona soporte completo del espacio de nombres. La acción del importador en este caso se describe con más detalle en el tema que trata el concepto de importación del esquema XML. Si está utilizando WebSphere Business Integration Message Broker, no tendrá que escribir ESQL de espacio de nombres para procesar un mensaje XML analizado en un diccionario que se ha generado a partir de este modelo de mensaje.

Información adicional acerca de XML

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

Conceptos relacionados
Formato físico XML

Tareas relacionadas
Creación de un proyecto de conjunto de mensajes
Creación de un conjunto de mensajes
Adición de un formato físico XML
Crear un archivo de definiciones de mensajes
Configuración de las propiedades del formato físico XML: objetos del modelo de mensaje
Importación desde DTD de XML

Referencias relacionadas
ESQL
Formatos de importación
Propiedades físicas del formato físico XML para los objetos del modelo de mensaje