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