]>
Este documento es una traducción al castellano de la Recomendación del W3C
"Namespaces in XML", publicada el 14 de enero de 1999. Esta traducción ha sido publicada el 17 de agosto de 2001. El URI de este documento es El URI del documento original es El URI de la última versión de la Recomendación en inglés es La Véase el Este documento puede contener errores de traducción. La traducción ha sido realizada por Este documento ha sido revisado por Miembros del W3C
y otras partes interesadas y ha sido aprobado por el
Director como Recomendación del W3C. Es un documento
estable y puede ser usado como material de referencia o
citado como referencia normativa en otros documentos.
La intención del W3C al hacer esta Recomendación es
llamar la atención sobre la especificación y promover
su difusión general. Esto impulsa la funcionalidad y la
interoperabilidad de la Web. La lista de errores conocidos de la versión original en inglés de esta especificación está
disponible en
Le rogamos informe de errores en la versión original en inglés de este documento a
Los espacios de nombres XML proporcionan un método simple
para cualificar nombres de elementos y atributos usados en el
Lenguaje Extensible para el Formato de Documentos (Extensible
Markup Language) asociándolos con espacios de nombres identificados
por referencias URI. Creado en forma electrónica. Nos imaginamos aplicaciones del Lenguaje XML en las que un
solo documento XML puede contener elementos y atributos (a los que
aquí se hace referencia como "vocabulario de formato") que están
definidos para y son usados por distintos módulos de software.
Una de las motivaciones es la modularidad; si existe un vocabulario
de formato bien entendido y para el cual hay programas útiles
disponibles, es mejor reutilizar este vocabulario y no
reinventarlo.
Tales documentos, que contiene varios vocabularios de formato,
plantean problemas de reconocimiento y colisión. Los módulos de
software tienen que ser capaces de reconocer las etiquetas y atributos
para cuyo procesamiento fueron diseñados, incluso si se
producen "colisiones" cuando un código de formato destinado a algún otro
paquete de software usa el mismo nombre de atributo o de tipo
de elemento.
Estas consideraciones exigen que las estructuras de los
documentos deban tener nombres universales, cuyo ámbito de
aplicación se extienda más allá del documento que las
contiene. Esta especificación describe un mecanismo, los
Los nombres de los espacios de nombres XML pueden aparecer como
Las referencias URI pueden contener caracteres no permitidos en
nombres, de modo que no pueden utilizarse directamente como prefijos
de espacios de nombres. Por tanto, el prefijo de espacio de nombres
actúa como intermediario de una referencia URI. Se utiliza una sintaxis
tipo atributo, descrita más adelante, para
Obsérvese que muchos de los símbolos no terminales de las producciones
de esta especificación no están definidos aquí, sino en la especificación
XML En las producciones de este documento, el código Obsérvese que todos los nombres de dominio de Internet usados en
los ejemplos, con la excepción de
Un ejemplo de declaración de espacio de nombres, que asocia el prefijo
de espacio de nombres Los prefijos que comiencen con la secuencia de tres letras
Obsérvese que el prefijo actúa En documentos XML conformes con esta especificación, los tipos de elemento
se dan como Un ejemplo de nombre cualificado que funciona como tipo de elemento:
Los atributos, o bien son Un ejemplo de nombre cualificado que actúa como nombre de atributo:
El prefijo del espacio de nombres, a menos que sea Esta restricción puede llevar a dificultades operativas en aquellos
casos en que el atributo de declaración del espacio de nombres se
proporcione no directamente en la Los nombres de elemento y los tipos de atributo también se dan como
nombres cualificados cuando aparecen en la declaraciones del
Se considera que la declaración del espacio de nombres se aplica al
elemento en que está especificada y a todos los elementos pertenecientes
al contenido de ese elemento, a menos que sea anulada por otra declaración
de espacio de nombres con la misma parte Se pueden declarar varios prefijos de espacios de nombres como atributos
de un mismo elemento, como se muestra en este ejemplo::
Se considera que se aplica un Movido
aquí. Un ejemplo más desarrollado que ilustra el ámbito de los espacios de nombres:
¡Este es un libro muy divertido!
El espacio de nombres por defecto puede especificarse como la cadena vacía.
Esto tiene el mismo efecto, dentro del ámbito de la declaración, que si no
hubiera espacio de nombres por defecto.
En documentos XML conformes con esta especificación, ninguna etiqueta
puede contener dos atributos que:
tengan nombres idénticos, o que tengan nombres cualificados con la misma
Por ejemplo, cada una de las etiquetas iniciales En documentos XML conformes con esta especificación, los nombres de atributos
y tipos de elemento deben concordar con la producción dada para
Un documento XML es conforme con esta especificación si todos
los demás símbolos que, por conformidad con XML, deben concordar con
la producción XML para El efecto de la conformidad es que en un documento conforme:
Todos los nombres de atributos y tipos de elemento contienen o cero
o un símbolo de dos puntos (:). Ningún nombre de entidad, destinos PI, o nombre de notación contiene ningún
símbolo de dos puntos (:). Estrictamente hablando, los valores de atributos declarados como de tipo
En las disciplinas de computación, el término "espacio de nombres" se
refiere convencionalmente a un Otra área problemática se deriva del uso de atributos "globales", como
se ilustra en este ejemplo de un fragmento de documento XML que se
va a representar usando una hoja de estilo CSS:
XML 1.0 no integra ningún método para declarar atributos "globales"; objetos
tales como el atributo HTML Para mantener el objetivo de que tanto los nombres cualificados como
los no cualificados sean útiles para su propósito, identificamos los nombres
que aparecen en un espacio de nombres XML según su pertenencia a uno o
varios espacios de nombres tradicionales (es decir, con estructura de conjunto)
disjuntos, llamados particiones del espacio de nombres. Las particiones son:
En esta partición aparecen todos los tipos de elemento de un espacio
de nombres XML. Cada uno tiene una Esta partición contiene los nombres de todos los atributos
que se han definido en este espacio de nombres como globales.
La única característica exigida a un atributo global es que su nombre
sea único en la partición de atributos globales.
Esta especificación no dice nada sobre la utilización apropiada de
estos atributos.
La combinación del nombre del espacio de nombres y del nombre del
atributo identifica unívocamente al atributo global. Cada tipo de elemento de la Partición de Todos los Tipos de Elemento
tiene un espacio de nombres asociado en que aparecen los nombres de los
atributos no cualificados que se proporcionan para ese elemento.
Esto es un espacio de nombres tradicional porque la aparición de nombres
de atributo duplicados está prohibida por XML 1.0.
La combinación del nombre del atributo con el tipo del elemento y el nombre
del espacio de nombres identifica unívocamente a cada atributo no
cualificado. En documentos XML conformes con esta especificación, los nombres de
todos los atributos cualificados (prefijados) se asignan a la partición
de atributos globales, y los nombres de todos los atributos no cualificados
se asignan a la partición por tipo de elemento apropiada. Para especificar reglas y hacer comparaciones de manera conveniente,
definimos, para cada tipo de elemento y nombre de atributo de un
documento XML, una forma expandida, expresada aquí con la sintaxis de
elementos de XML. Unas pequeñas variaciones de los ejemplos anteriores ilustrarán
el funcionamiento de los tipos de elementos y nombres de atributos
expandidos. Cada uno de los siguientes fragmentos está seguido de una
tabla que muestra la expansión de los nombres:
REN
es una Restricción sobre el Espacio de Nombres, una de las reglas que
deben seguir los documentos conformes con esta especificación.
w3.org
, se han
elegido aleatoriamente y no debería dárseles mayor importancia.http://ecommerce.org/schema
:
x
, m
, l
, en cualquier
combinación de mayúsculas y minúsculas, están reservados para
su uso por las especificaciones de XML y las relacionadas con
ellas.xml
o xmlns
, debe haber sido declarado en un atributo de
xml
está ligado por definición al nombre de
espacio de nombres http://www.w3.org/XML/1998/namespace
.
El prefijo xmlns
sólo se utiliza para enlazar con
espacios de nombres y no está ligado en sí a ningún nombre de espacio
de nombres.
Name Origin Description
mal
que siguen
es ilegal:
title
dentro del código, y solamente el nombre proporciona información
insuficiente como para permitir su correcto procesamiento por un
módulo de software.CLASS
, que indica la clase del
billete y toma valores como "J", "Y", y "C", es diferente en todos
los niveles semánticos del atributo HTML:CLASS
, que se
usa para simular riqueza sintáctica en HTML, con la finalidad de
superar el limitado repertorio de elementos por medio de subclases.CLASS
son globales sólo en
su descripción literaria y en su interpretación por las aplicaciones HTML.
Sin embargo, se observa que estos atributos, una de cuyas características
distintivas es que sus nombres son únicos, aparecen frecuentemente en
diversas aplicaciones.ExpEType
.
Tiene un atributo type
obligatorio que da la parte local
(ns
que da, si el elemento está cualificado, el
ExpAName
.
Tiene un atributo obligatorio name
que da el nombre. Si
el atributo es global, tiene un atributo obligatorio ns
que
da el eltype
que
da el tipo del elemento al que está ligado, y un atributo opcional
elns
que da, si es que se conoce, el nombre del espacio del
espacio de nombres de dicho elemento.
Línea Nombre Expandido
1 section
<ExpEType type="section" ns="urn:com:books-r-us" /> 2
title <ExpEType type="title" ns="urn:com:books-r-us" />
3
signing <ExpEType type="signing" ns="urn:com:books-r-us" />
4
author <ExpEType type="author" ns="urn:com:books-r-us" />
4
title
<ExpAName name='title' eltype="author" elns="urn:com:books-r-us" />
4
name
<ExpAName name='name' eltype="author" elns="urn:com:books-r-us" />
5
book <ExpEType type="book" ns="urn:com:books-r-us" />
5
title <ExpAName name='title' eltype="book" elns="urn:com:books-r-us" />
5
price <ExpAName name='price' eltype="book" elns="urn:com:books-r-us" />
1
RESERVATION <ExpEType type="RESERVATION" />
2
NAME <ExpEType type="NAME" />
2
HTML:CLASS
<ExpAName name="CLASS" ns="http://www.w3.org/TR/REC-html40" />
3
SEAT <ExpEType type="SEAT" />
3
CLASS <ExpAName name="CLASS" eltype="SEAT" />
3
HTML:CLASS <ExpAName name="CLASS" ns="http://www.w3.org/TR/REC-html40" />
4
HTML:A <ExpEType type="A" ns="http://www.w3.org/TR/REC-html40" />
4
HREF <ExpAName name="HREF" eltype="A" elns="http://www.w3.org/TR/REC-html40" />
5
DEPARTURE <ExpEType type="DEPARTURE" />
La restricción expresada arriba por
Esta obra refleja el trabajo de una gran cantidad de personas, incluyendo especialmente a los miembros del Grupo de Trabajo XML y del Grupo de Interés Especial del World Wide Web Consortium y a los participantes de las Actividades del W3C en el campo de los Metadatos. Las contribuciones de Charles Frankston de Microsoft han sido particularmente valiosas.
Copyright © 1994-2001
Los titulares del copyright proporcionan los documentos públicos que se
encuentran en el sitio web del W3C de acuerdo con la siguiente Licencia. El
software y las Definiciones de Tipo de Documento (
Por el uso y/o la copia de este documento, usted (el beneficiario de la Licencia del copyright) está de acuerdo en que ha leído, entendido y que respetará los siguientes términos y condiciones:
Se concede permiso para usar, copiar y distribuir los contenidos de este documento en cualquier medio y para cualquier propósito sin necesidad del pago de fianzas ni royalties, siempre y cuando se incluya la siguiente información en TODAS las copias de este documento, o partes del mismo, que usted utilice:
Un vínculo o URL al documento original del W3C.
El aviso de copyright pre-existente del autor original; caso de no
existir éste, debería utilizarse un aviso de la forma siguiente: "Copyright
© [$fecha-del-documento]
Cuando el espacio lo permita, debería incluirse una copia del texto completo
de esta
Esta licencia no concede permiso para crear modificaciones o documentos
derivados de documentos del W3C. Sin embargo, caso de satisfacerse adicionales
(documentados en el
ESTE DOCUMENTO SE OFRECE "TAL COMO ESTA". LOS PROPIETARIOS DEL COPYRIGHT NO HACEN GARANTIAS NI REPRESENTACIONES DE NINGUN TIPO, EXPRESAS O IMPLICITAS, INCLUYENDO, AUNQUE SIN LIMITARSE A, LAS GARANTIAS DE COMERCIALIZACION, ADECUACION A UN PROPOSITO ESPECIFICO, O TITULO; QUE LOS CONTENIDOS DEL DOCUMENTO SEAN APROPIADOS PARA CUALQUIER PROPOSITO; NI QUE LA IMPLEMENTACION DE TALES CONTENIDOS NO INFRINGIRA LAS PATENTES, DERECHOS DE AUTOR, MARCAS REGISTRADAS O COMERCIALES U OTROS DERECHOS DE TERCERAS PERSONAS.
LOS PROPIETARIOS DEL COPYRIGHT NO SERAN RESPONSABLES DE NINGUN DAÑO DIRECTO, INDIRECTO, ESPECIAL O CONSECUENTE DEBIDO A CUALQUIER USO DEL DOCUMENTO O DEL FUNCIONAMIENTO O IMPLEMENTACION DE LOS CONTENIDOS DEL MISMO.
El nombre y marcas registradas de los propietarios del copyright NO pueden utilizarse en anuncios o publicidad relativos a este documento o a sus contenidos sin un permiso previo por escrito. Los derechos de autor de este documento pertenecerán en todo momento a los propietarios del copyright.