Espacio de nombre

espacio de nombres
Información sobre la plantilla
Espacio de nombres.jpg
Concepto:Un espacio de nombre o namespace es una colección de nombres, identificados por un URI, que se utiliza en los documentos XML para identificar los nombres de los elementos y atributos.

Espacio de nombres o namespace. Modo de separar distintos tipos de contenido dentro de un wiki. Los grupos de páginas de propósito similar pueden ser agrupados juntos, una de las pruebas del éxito del XML es la gran cantidad de vocabularios XML (DTD) que están apareciendo. En algunas ocasiones al confeccionar documentos XML es necesario utilizar varios de estos vocabularios.

En general, un espacio de nombres o namespace es un contenedor que proporciona el contexto para los identificadores (nombres o términos técnicos, o palabras) que posee, lo que permite la desambiguación de identificadores homónimo que residen en diferentes espacios de nombres.

Utilidad

Según va aumentando el número de librerías escritas en PHP se hace mayor el riesgo de colisión de nombres de clases y funciones entre librerías. En un principio sería totalmente comprensible que diferentes programas implementen por ejemplo una clase llamada Photo que maneje las imágenes en el proyecto, pero eso hasta la llegada de PHP 5.3 estaba mal visto porque había que intentar evitar tener problemas de compatibilidad con otros proyectos.

  • Permiten la separación de diferentes tipos de contenido no relacionados.
  • Algunos espacios de nombre poseen características especiales relacionadas con sus propósitos específicos.
  • Proporcionan facilidades para limitar las búsquedas a un área particular.
  • Permiten una fácil exportación.
  • Posibilitan la separación de diferentes características.

Características

  • Los espacio de nombres puede representar objetos y conceptos, el espacio de nombres de un lenguaje natural o étnico, una lengua artificial, la terminología técnica de una profesión, un dialecto, un sociolecto, o una lengua artificial (por ejemplo, un lenguaje de programación) .
  • En el lenguaje de programación Java, los identificadores que aparecen en los espacios de nombres tienen un corto (local) el nombre y un único largo "calificado" el nombre para su uso fuera del espacio de nombres.
  • Algunos compiladores (para lenguajes como C + +) se combinan espacios de nombres y nombres en un proceso llamado renombrado de nombres.

Objetivo

El objetivo principal de la especificación de espacios de nombre es permitir que el autor del documento le diga al analizador o parser qué DTD usar cuando analice un elemento dado. Es decir, que para una etiqueta se especifica que DTD usar, por lo que esto sólo tiene sentido si se usa más de un DTD. Por ejemplo, tenemos una hoja xml con libros y otra con discos (con sus correspondientes DTD) y queremos mezclar ambas páginas. Habrá elementos que no se llamen igual (páginas o tiempo), pero otros que si (titulo, autor). Entonces se usarían ambos DTD y utilizaríamos los espacios de nombres para distinguir aquellos elementos en los que no esté claro a que DTD pertenecen.

Discusiones de los espacios de nombres

Excepto en lo que se refiere a las páginas especiales, cada espacio de nombres lleva asociado un espacio de nombres de discusión. Estas discusiones se designan añadiendo Discusión al prefijo habitual. Por ejemplo, el espacio de discusión asociado a los artículos del espacio de nombres principal lleva el prefijo Discusión, mientras que el espacio de discusión asociado al espacio de nombres de usuario lleva el prefijo Usuario Discusión.

La mayoría de las páginas ubicadas en las discusiones de los espacios de nombres se utilizan para debatir acerca de los cambios realizados en sus correspondientes páginas de su espacio de nombres asociado. Las páginas del espacio de nombres "Usuario Discusión" se usan para dejar mensajes a usuarios específicos, dado que estos recibirán automáticamente una notificación de cualquier mensaje que sea dejado en ellos.

Fuentes

Ayuda:Namespace
xml/nombres
espacio de nombres o namespace-definicion-declaracion
wikipedia. Namespaces
manualxml/namespaces