07 enero 2010


En ocasiones puede resultar útil incluir en un mismo documento XML elementos y atributos provenientes de distintas aplicaciones. Por ejemplo, un documento XHTML (la evolución de HTML basada en XML) puede contener fórmulas matemáticas expresadas mediante MathML(lenguaje XML para la expresión de notación matemática) y figuras representadas medianteSVG (estándar de gráficos vectoriales representados con XML).
¿Cómo sabe el procesador de XML a qué aplicación pertenece cada uno de los elementos y atributos en este caso? Es más, ¿qué ocurre si mezclamos dos aplicaciones que definen un elemento con el mismo nombre?
La solución a este problema está en el estándar de espacios de nombres (“namespaces”). A un conjunto de elementos y atributos definidos para una aplicación concreta se les puede asociar un identificador de espacio de nombres. Este identificador suele ser una URL de HTTP para evitar colisiones.
Añadiendo el atributo xmlns a un elemento se declara a qué espacio de nombres pertenecen los atributos de dicho elemento, así como todos los elementos y atributos contenidos en su interior en cualquier nivel de profundidad. En el interior de este elemento también sería posible insertar elementos pertenecientes a otros espacios de nombres, si a su vez se declara el atributo xmlns en los mismos.
 <alumno xmlns="http://www.ejemplo.com/gestion-alumnos">
  <id ambito="alumnado">999999</id>
   <direccion xmlns="http://www.ejemplo.com/direcciones-
  postales" tipo="nacional">
  <calle>(...)</calle>
  (...)
  </direccion>
 </alumno>

Etiquetas: