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.
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:
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.
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.
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.
En el sitio Web World Wide Web Consortium (W3C) , consulte también: