Espacios De Nombres Namespaces
En ocasiones, documentos XML relativos a diferentes temas, pueden tener los mismos nombres. Este problema se agrava cuando hay que combinar documentos que puedan provocar ambigüedades. Para ello se introducen los namespaces.
Una compañía puede crear un documento XML que describe el mundo en sus propios términos. Por ejemplo, si una compañía considera que una
PREFIJOS
La mejor manera de resolver esto es tener un nombre únicopara cada elemento. Por ejemplo, si mezclamos en nuestro documento etiquetas XML propias y etiquetas HTML que no queremos que se mezclen, se puede resolver con una convención de nombres donde cada elemento de nuestro documento XML tiene su propio prefijo, y cada etiqueta de HTML tiene otro prefijo. Por ejemplo, observa el siguiente código:
Juan García
Juan es una buena persona,¿No?
Resulta ambiguo. La aplicación destinatario confundiría el título "Don" con el título "Resumen deJuan...". Utilizando prefijos, quedaría del siguiente modo:
Aunque sea un poco engorroso, es efectivo, ya que un analizador sintáctico diferencia perfectamente
El inconveniente que tiene es que ya no se están usando etiquetas correctas xhmtl. Los navegadoresentenderán
. Para que el navegador lea correctamente el código xhmtl, antes habría que renombrar cada elemento.
Hemos creado dos categorías. La categoría de elementos pers y la categoría de elementos xhtml. A estas categorías le llamamos namespace. Pero ¡OJO! las categorías estan relacionadas con el vocabulario, no con el tipo de documento. Es decir, el namespace distingue quénombres están en el namespace, pero no que significan o como deben mezclarse entre sí. Es una sencilla "bolsa de nombres".
¿Y YA ESTÁ?
¿Qué ocurriría si dos compañías utilizan el mismo prefijo para dos vocabularios diferentes? Estamos entonces en las mismas. Para evitar esta ambigüedad, podemos hacer uso de las "no ambigüedades" de los nombres de dominio de Internet. En internet se suelehablar de URL (Universal Resource Locator) para describir la localización de un recurso. Por ejemplo, supongamos que dos compañías emplean el prefijo "pers" para conceptos distintos. La primera compañía tiene registrado el dominio www.mauriciomatamala.net. La segunda tiene registrado www.otrodominio.info. Entonces, las ambigüedades desaparecen en el elemento "name" con los siguientes prefijos:<{http://www.mauriciomatamala.net/pers}name>
<{http://www.otrodominio.info/pers}name>
¡OJO! http://www.mauriciomatamala.net/pers es solo un nombre no una URL. Sólo se utiliza con efectos de identificación.
Incluso si dentro de una misma compañía hay namespaces con el mismo nombre que tienen significados diferentes, se puede dar una solución elegante. Por ejemplo, el departamento de ventas y el de...
Regístrate para leer el documento completo.