English to Spanish Translation by Trusted Translations, Inc.

Otras Traducciones de W3 en Spanish Translator Services

Espacios de nombres en XML 1.1
Este documento es una traducción de la Recomendación del W3C sobre los espacios de nombres en XML 1.1
La versión inglesa de esta especificación es la única con valor normativo y puede encontrarse en: http://www.w3.org/TR/xml-names11/

W3C

Espacios de nombres en XML 1.1

Recomendación del W3C, 4 de febrero de 2004

Esta versión (en inglés):
http://www.w3.org/TR/2004/REC-xml-names11-20040204
Última versión (en inglés):
http://www.w3.org/TR/xml-names11
Versión anterior (en inglés):
http://www.w3.org/TR/2003/PR-xml-names11-20031105
Editores:
Tim Bray, Textuality <tbray@textuality.com>
Dave Hollander, Contivo, Inc. <dmh@contivo.com>
Andrew Layman, Microsoft <andrewl@microsoft.com>
Richard Tobin, Universidad de Edimburgo y Markup Technologies Ltd <richard@cogsci.ed.ac.uk> - Versión 1.1

Consulte la sección de erratas de este documento, que puede incluir algunas correcciones normativas.

Vea también las traducciones.

Este documento también está disponible en estos formatos no normativos: XML.


Resumen

Los espacios de nombres XML proporcionan un método simple para calificar nombres de elementos y atributos utilizados en el Lenguaje Extensible de Marcado (Extensible Markup Language) asociándolos con espacios de nombres identificados mediante referencias IRI.

Estado de este documento

Esta sección describe el estado de este documento al momento de su publicación. Este documento pueden ser reemplazado por otros. Una lista de las publicaciones actuales del W3C y la última revisión de este informe técnico puede hallarse en el Índice de informes técnicos del W3C en http://www.w3.org/TR/.

Este documento es una Recomendación del W3C. Ha sido revisado por miembros del W3C y otras partes interesadas, y avalado por el Director como Recomendación del W3C. Es un documento estable y puede ser empleado como material de referencia o citado como referencia normativa a otro documento. El papel del W3C en la creación de la Recomendación es atraer la atención hacia la especificación y fomentar su amplia implementación. Esto mejora la funcionalidad y la interoperabilidad de la Web.

Este documento es resultado de la Actividad de XML del W3C. La versión inglesa de esta especificación es la única versión normativa. Sin embargo, podrá hallar traducciones de este documento en http://www.w3.org/2003/03/Translations/byTechnology?technology=xml-names11.

Se puede hallar documentación de propiedad intelectual posiblemente relevante a esta recomendación en la página pública de divulgación de derechos de propiedad intelectual del Grupo de Trabajo.

Las implementaciones conocidas están documentadas en el Informe de implementación de espacios de nombres 1.1. También está disponible un paquete de prueba en la página del Paquete de prueba XML.

Por favor informe de los errores en este documento a xml-names-editor@w3.org; hay archivos públicos disponibles. La lista de erratas para este documento se encuentra disponible en http://www.w3.org/XML/2004/xml-names11-errata.

Índice

1 Motivación y síntesis
    1.1 Comentario sobre notación y uso
2 Espacios de nombres de XML
    2.1 Conceptos básicos
    2.2 Uso de IRI como nombres de espacios de nombres
    2.3 Comparación de referencias de IRI
3 Declaración de espacios de nombres
4 Nombres cualificados
5 Uso de nombres cualificados
6 Aplicación de espacios de nombres a elementos y atributos
    6.1 Ámbito de aplicación de espacios de nombre
    6.2 Espacios de nombre por defecto
    6.3 Unicidad de atributos
7 Conformidad de documentos
8 Conformidad de procesadores
9 Identificadores de recursos internacionalizados (Internationalized Resource Identifiers, IRI)

Apéndices

A Referencias normativas
B Otras referencias (no normativas)
C Estructura interna de los espacios de nombres XML (no normativo)
D Cambios desde la versión 1.0 (no normativo)
E Agradecimientos (no normativo)


1 Motivación y síntesis

Imaginamos aplicaciones del Lenguaje Extensible de Marcas (XML) en las cuales un único documento XML puede contener elementos y atributos (a los que aquí se hace referencia como "vocabulario de marcado") que están definidos para y son usados por distintos módulos de software. Una de las motivaciones para esto es la modularidad: si existe un vocabulario de marcado bien entendido y para el cual hay software útil disponible, es mejor reutilizarlo en lugar de reinventarlo.

Tales documentos, que contienen varios vocabularios de marcado, plantean problemas de reconocimiento y colisión. Los módulos de software deben ser capaces de reconocer los elementos y atributos para cuyo procesamiento fueron diseñados, incluso si se producen "colisiones" cuando un marcado destinado para otro paquete de software usa el mismo nombre de elemento o de atributo.

Estas consideraciones exigen que las estructuras de los documentos deban tener nombres estructurados de modo tal de evitar colisiones entre nombres de distintos vocabularios de marcado. Esta especificación describe un mecanismo, espacios de nombre XML, que logra esto al asignar nombres expandidos a elementos y atributos.

1.1 Comentario sobre notación y uso

En todos los casos en que aparecen DESTACADAS, las palabras clave DEBE, NO DEBE, OBLIGATORIO, DEBERÍA, NO DEBERÍA, PUEDE en este documento interpretarse según se describe en [Palabras clave.

Nótese 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 [XML]. Cuando los símbolos no terminales aquí definidos tienen los mismos nombres que los símbolos no terminales definidos en la especificación XML, las producciones de esta especificación corresponden en todos los casos a un subconjunto de las cadenas emparejadas por las producciones correspondientes de la especificación XML.

En las producciones de este documento, el código NSC es una "Restricción del espacio de nombres" (Namespace Constraint), una de las reglas que DEBEN seguir los documentos conformes con esta especificación.

2 Espacios de nombres XML

2.1. Conceptos básicos

[Definición: Un espacio de nombre XML es identificado mediante una referencia IRI; los nombres de elemento y atributo pueden ser colocados en un espacio de nombre XML mediante los mecanismos descritos en esta especificación. ]

[Definición: Un nombre expandido es un par constituido por un nombre de espacio de nombre y un nombre local. ] [Definición: Para un nombre N en un espacio de nombre identificado mediante un IRI I, el nombre del espacio de nombre es I. Para un nombre N que no está en un espacio de nombre, el nombre del espacio de nombre no tiene asignación de valor. ] [Definición: En ambos casos el nombre local es N. ] Es esta combinación del espacio de nombre IRI manejado universalmente y los nombres locales del vocabulario la que resulta efectiva para evitar las colisiones de nombres.

Las referencias IRI pueden contener caracteres que no están permitidos en los nombres, y frecuentemente son inconvenientemente largas, de manera que los nombres expandidos no son usados directamente para nombrar elementos y atributos en los documentos XML. En cambio, se utilizan nombres cualificados. [Definición: Un nombre cualificado es un nombre sujeto a la interpretación del espacio de nombre. ] En los documentos que se adecuan a esta especificación, los nombres de elementos y atributos aparecen como nombres cualificados. Sintácticamente, son nombres con prefijo o nombres sin prefijo. Se provee una sintaxis de declaración basada en atributos para vincular los prefijos a los nombres de espacio de nombre y para vincular un espacio de nombre por defecto que se aplica a los nombres de elementos sin prefijo; éstas declaraciones están limitadas a los elementos en los cuales aparecen, de modo que pueden darse distintas vinculaciones en distintas partes de un documento. Los procesadores que se adecuen a esta especificación DEBEN reconocen y actúan sobre estas declaraciones y prefijos.

2.3 Comparación referencias IRI

Las referencias IRI que identifican nombres de espacio se comparan para determinar si un nombre pertenece a un espacio de nombre dado, y si dos nombres pertenecen al mismo espacio de nombre. [Definición: Los dos IRI son tratados como cadenas, y son idénticos si y sólo si las cadenas son idénticas, esto es, si son la misma secuencia de caracteres. ] La comparación toma en cuenta mayúsculas y minúsculas, y no se hace ni deshace ningún escape por %.

Como consecuencia de esto, las referencias IRI que no son idénticas en este sentido pueden resolverse de la misma manera. Algunos ejemplos incluyen las referencias IRI que sólo difieren en mayúsculas o minúsculas, o en caracteres de escape por %, o que están en entidades externas con distintos URI base (pero nótese que los IRI relativos son desaprobados como nombres de espacio de nombre).

En una declaración de espacio de nombre, la referencia IRI es el valor normalizado del atributo, de modo que el reemplazo de las referencias XML de carácter y entidad ya ha sido realizado antes de cualquier comparación.

Ejemplos:

Las siguientes referencias IRI son todas diferentes en lo que hace a identificar espacios de nombre, pues difieren en mayúsculas/minúsculas:

  • http://www.example.org/wine

  • http://www.Example.org/wine

  • http://www.example.org/Wine

Las siguientes referencias IRI también son todas diferentes en lo referente a identificar espacios de nombre:

  • http://www.example.org/rosé

  • http://www.example.org/ros%c3%a9

  • http://www.example.org/ros%c3%A9

  • http://www.example.org/ros%C3%a9

  • http://www.example.org/ros%C3%A9

Y también las siguientes:

  • http://www.example.org/~wilbur

  • http://www.example.org/%7ewilbur

  • http://www.example.org/%7Ewilbur

Si la entidad eacute ha sido definida como é, todos los siguientes tags de inicio contienen declaraciones de espacio de nombre que vinculan el prefijo p a la misma referencia IRI, http://example.org/rosé.

  • <p:foo xmlns:p="http://example.org/ros&eacute;">

  • <p:foo xmlns:p="http://example.org/ros&#xe9;">

  • <p:foo xmlns:p="http://example.org/ros&#xE9;">

  • <p:foo xmlns:p="http://example.org/ros&#233;">

  • <p:foo xmlns:p="http://example.org/ros&eacute;">

Debido al riesgo de confusión entre IRI que serían equivalentes en caso de estar sin referencias, se rechaza el uso de caracteres %-escape en los nombres de espacio de nombre.

3 Declaración de espacios de nombre

[Definición: Un espacio de nombre (o más precisamente, un vínculo de espacio de nombre) se declara utilizando un conjunto de atributos reservados. Este nombre de atributo debe ser xmlns o comenzar con xmlns:. Estos atributos, como cualquier otro atributo XML, se pueden proporcionar directamente o pueden tener un valor por defecto. ]

Nombres de atributos para la declaración de espacios de nombre
[1]   NSAttName   ::=   PrefixedAttName
| DefaultAttName
[2]   PrefixedAttName   ::=   'xmlns:' NCName[NSC: Prefijos y nombres de espacio de nombre reservados]
[3]   DefaultAttName   ::=   'xmlns'
[4]   NCName   ::=   NCNameStartChar NCNameChar*/* Un nombre XML, menos los ":" */
[5]   NCNameChar   ::=   NameChar - ':'
[5a]   NCNameStartChar   ::=   NameStartChar - ':'

El valor normalizado del atributo DEBE ser una referencia IRI - el nombre de espacio de nombre que identifica al espacio de nombre - o una cadena vacía. El nombre del espacio de nombre, para servir a la finalidad deseada, DEBERÍA tener las características de unicidad y persistencia. El objetivo es que no sea directamente usable para la obtención de un esquema (si es que existe alguno). Un ejemplo de una sintaxis diseñada con estos fines en mente es el de los Nombres Uniformes de Recursos [RFC2141]. Sin embargo, debería tenerse en cuenta que los URL ordinarios pueden utilizarse de modo tal que se alcancen estos mismos objetivos.

[Definición: Si el nombre de atributo concuerda con PrefixedAttName, entonces el NCName da el prefijo del espacio de nombre, usado para asociar nombres de elementos y atributos con el nombre del espacio de nombre dado por el valor del atributo en el ámbito del elemento al cual está ligada la declaración.]

[Definición: Si el nombre del atributo concuerda con DefaultAttName, entonces el nombre de espacio de nombre dado por el valor del atributo es aquel del espacio de nombres por defecto en el ámbito del elemento al cual está ligada la declaración.] En 6 Aplicando espacios de nombre a elementos y atributos se habla de los espacios de nombres por defecto y de la anulación de declaraciones.

Un ejemplo de declaración de espacio de nombres, que asocia el prefijo del espacio de nombres edi con el nombre de espacio de nombres http://ecommerce.example.org/schema:

<x xmlns:edi='http://ecommerce.example.org/schema'>
  <!-- el prefijo "edi" está ligado a http://ecommerce.example.org/schema
	   para el elemento "x" y sus contenidos --->
</x>

Aunque no están reservados, se aconseja no utilizar nombres con prefijos, cuya parte LocalPart comience con las letras x, m, l en cualquier combinación de mayúsculas y minúsculas, pues estos nombres estarían reservados si fuesen usados sin un prefijo.

4 Nombres cualificados

En los documentos XML que se adecuen a esta especificación, algunos nombres (estructuras correspondientes al símbolo no terminal Name) DEBEN serdados como nombres cualificados, según se define a continuación:

Nombre cualificado
[6]   QName   ::=   PrefixedName
| UnprefixedName
[6a]   PrefixedName   ::=   Prefix ':' LocalPart
[6b]   UnprefixedName   ::=   LocalPart
[7]   Prefix   ::=   NCName
[8]   LocalPart   ::=   NCName

ElPrefijo proporciona la parte del prefijo del espacio de nombre del nombre cualificado, y DEBE estar asociado mediante una referencia IRI a un espacio de nombres en una declaración de espacio de nombre. [Definición: LocalPart proporciona la parte local del nombre cualificado.]

Obsérvese que el prefijo actúa únicamente como sustituto del nombre del espacio de nombres. Las aplicaciones DEBERÍAN usar el nombre del espacio de nombres, y no el prefijo, al construir nombres cuyo ámbito de aplicación vaya más allá del documento que lo contiene.

5 Utilización de nombres cualificados

En los documentos XML conformes a esta especificación, los nombres de elementos se dan como nombres cualificados, según se describe a continuación:

Nombres de elemento
[9]   STag   ::=   '<' QName (S Attribute)* S? '>'[NSC: Prefijo declarado]
[10]   ETag   ::=   '</' QName S? '>'[NSC: Prefijo declarado]
[11]   EmptyElemTag   ::=   '<' QName (S Attribute)* S? '/>'[NSC: Prefijo declarado]

Un ejemplo de nombre cualificado que funciona como nombre de elemento:

Los atributos, son declaraciones de espacios de nombres, o bien sus nombres se dan como nombres cualificados:

Atributo
[12]   Attribute   ::=   NSAttName Eq AttValue
| QName Eq AttValue[NSC: Prefijo declarado]

Un ejemplo de nombre cualificado que funciona como nombre de atributo:

Restricción sobre el espacio de nombres: Prefijo Declarado]

El prefijo del espacio de nombres, a menos que sea xml o xmlns, DEBE haber sido declarado en un atributo de declaración de espacio de nombres ya sea en la etiqueta inicial del elemento en que se usa el prefijo, o en un elemento ascendiente (es decir, un elemento en cuyo contenido aparezca el marcado prefijado). Además, el valor del atributo en la declaración más interna NO DEBE ser una cadena vacía.

Esta restricción puede ocasionar dificultades operativas en aquellos casos en que el atributo de declaración de espacio de nombres no se proporcione directamente en la entidad documento XML, sino a través de un atributo por defecto declarado en una entidad externa. Estas declaraciones pueden no ser leídas por programas basados en un procesador de XML no validador. Muchas aplicaciones XML, entre ellas presumiblemente algunas sensibles a los espacios de nombres, no requieren el uso de procesadores validadores. Para el funcionamiento correcto de tales aplicaciones, las declaraciones de espacios de nombres DEBEN proporcionarse directamente o bien a través de atributos por defecto declarados en el subconjunto interno del DTD.

Los nombres de elementos y nombres de atributos también se dan como nombres cualificados cuando aparecen en declaraciones en el DTD:

Nombres cualificados en declaraciones
[13]   doctypedecl   ::=   '<!DOCTYPE' S QName (S ExternalID)? S? ('[' (markupdecl | PEReference | S)* ']' S?)? '>'
[14]   elementdecl   ::=   '<!ELEMENT' S QName S contentspec S? '>'
[15]   cp   ::=   (QName | choice | seq) ('?' | '*' | '+')?
[16]   Mixed   ::=   '(' S? '#PCDATA' (S? '|' S? QName)* S? ')*'
| '(' S? '#PCDATA' S? ')'
[17]   AttlistDecl   ::=   '<!ATTLIST' S QName AttDef* S? '>'
[18]   AttDef   ::=   S (QName | NSAttName) S AttType S DefaultDecl

Nótese que la validación basada en DTD no es sensible a los espacios de nombres en el sentido siguiente: un DTD restringe los elementos y atributos que pueden aparecer en un documento por sus nombres no interpretados, no por pares (nombre de espacio de nombres, nombre local). Para validar un documento que utiliza espacios de nombres con un DTD, deben usarse los mismos prefijos en el DTD y en la instancia. Un DTD puede sin embargo restringir indirectamente los espacios de nombres usados en un documento válido, brindando valores #FIXED para los atributos que declaran espacios de nombres.

6 Aplicación de espacios de nombres a elementos y atributos

6.1. Ámbito de aplicación de los espacios de nombres

El ámbito de una declaración de espacio de nombres que declara un prefijo se extiende desde el comienzo de la etiqueta inicial en la cual aparece hasta la etiqueta final correspondiente, excluyendo el ámbito de cualquier declaración interna con la misma parte NSAttName. En caso de una etiqueta vacía, el ámbito es la etiqueta misma.

Tal declaración de espacio de nombres se aplica a todos los nombres de elementos y atributos dentro de su ámbito cuyo prefijo coincida con aquel especificado en la declaración.

El nombre expandido correspondiente a un nombre de elemento o atributo prefijado tiene la IRI, a la cual el prefijo está vinculado como su nombre de espacio de nombres, y la parte local como su nombre local.

<?xml version="1.1"?>

<html:html xmlns:html='http://www.w3.org/1999/xhtml'>

  <html:head><html:title>Frobnostication</html:title></html:head>
  <html:body><html:p>Moved to
	<html:a href='http://frob.example.com'>here.</html:a></html:p></html:body>
</html:html>

Se pueden declarar varios prefijos de espacios de nombres como atributos de un mismo elemento, como se muestra en este ejemplo:

<?xml version="1.1"?>
<!-- ambos prefijos de espacios de nombres están disponibles en todas partes -->
<bk:book xmlns:bk='urn:loc.gov:books'
		 xmlns:isbn='urn:ISBN:0-395-36341-6'>
	<bk:title>Cheaper by the Dozen</bk:title>
	<isbn:number>1568491379</isbn:number>
</bk:book>

El valor del atributo en una declaración de espacio de nombres para un prefijo PUEDE estar vacío. Esto tiene el efecto, dentro del ámbito de la declaración, de quitar cualquier asociación del prefijo con un nombre de espacio de nombres. Posteriores declaraciones PUEDEN redeclarar el prefijo nuevamente:


<?xml version="1.1"?>
<x xmlns:n1="http://www.w3.org">
	<n1:a/>               <!-- legal; el prefijo está vinculado a http://www.w3.org -->
	<x xmlns:n1="">
		<n1:a/>           <!-- ilegal; el prefijo n1 no está vinculado aquí -->
	<x xmlns:n1="http://www.w3.org">
			<n1:a/>       <!-- legal; el prefijo n1 está vinculado nuevamente -->
		</x>
	</x>
</x>

6.2 Espacios de nombres por defecto

El ámbito de una declaración de espacio de nombres por defecto se extiende desde el comienzo de la etiqueta inicial, en la cual aparece, hasta el final de la última etiqueta correspondiente, excluyendo el ámbito de cualquier declaración interna de espacio de nombre por defecto. En caso de una etiqueta vacía, el ámbito es la etiqueta misma.

Una declaración de espacio de nombres por defecto se aplica a todos los nombres de elementos sin prefijo dentro de su ámbito. Las declaraciones de espacio de nombres por defecto no se aplican directamente a los nombres de atributos; la interpretación de atributos sin prefijo está determinada por el elemento en el cual aparecen.

Si hay una declaración de espacio de nombres por defecto, el nombre expandido que corresponde a un nombre de elemento sin prefijo tiene la IRI del espacio de nombre por defecto como su nombre del espacio de nombre. Si no hay declaración de espacio de nombres por defecto en ámbito, el nombre del espacio de nombres no tiene valor asignado. El nombre del espacio de nombres para un nombre de atributo sin prefijo siempre carece de valor asignado. En todos los casos, el nombre local es la parte local (que por supuesto es igual al nombre mismo sin prefijo).

<?xml version="1.1"?>
<!-- los elementos están en el espacio de nombre HTML, en este caso por defecto -->
<html xmlns='http://www.w3.org/1999/xhtml'>
  <head><title>Frobnostication</title></head>
  <body><p>Movido a
	<a href='http://frob.example.com'>aquí</a>.</p></body>
</html>
<?xml version="1.1"?>
<!-- los tipos de elementos sin prefijo son de "books" -->
<book xmlns='urn:loc.gov:books'
	  xmlns:isbn='urn:ISBN:0-395-36341-6'>
	<title>Cheaper by the Dozen</title>
	<isbn:number>1568491379</isbn:number>
</book>

Un ejemplo más desarrollado que ilustra el ámbito de los espacios de nombres:

<?xml version="1.1"?>
<!-- inicialmente, el espacio de nombres por defecto es "books" -->
<book xmlns='urn:loc.gov:books'
	  xmlns:isbn='urn:ISBN:0-395-36341-6'>
	<title>Cheaper by the Dozen</title>
	<isbn:number>1568491379</isbn:number>
	<notes>
	  <!-- hacemos a HTML el espacio de nombres por defecto para algunos comentarios -->
	  <p xmlns='http://www.w3.org/1999/xhtml'>
		  Este es un libro <i>divertido</i> !
	  </p>
	</notes>
</book>

El valor del atributo en una declaración de espacio de nombres por defecto PUEDE estar vacío. Esto tiene el mismo efecto, dentro del ámbito de la declaración, que si no hubiera espacio de nombres por defecto.

<?xml version='1.1'?>
<Beers>
  <!-- el espacio de nombres por defecto es ahora el de HTML -->
  <p xmlns='http://www.w3.org/1999/xhtml'>
   <th><td>Name</td><td>Origin</td><td>Description</td></th>
   <tr>
	 <!-- dentro de las celdas de la tabla no hay espacio de nombres por defecto -->
	 <td><brandName xmlns="">Huntsman</brandName></td>
	 <td><origin xmlns="">Bath, UK</origin></td>
	 <td>
	   <details xmlns=""><class>Bitter</class><hop>Fuggles</hop>
		 <pro>Wonderful hop, light alcohol, good summer beer</pro>
		 <con>Fragile; excessive variance pub to pub</con>
		 </details>
		</td>
	  </tr>
	</table>
  </Beers>

6.3. Unicidad de los atributos

En documentos XML conformes con esta especificación, ninguna etiqueta puede contener dos atributos que:

  1. tengan nombres idénticos, o que

  2. tengan nombres cualificados con la misma parte local y con prefijos que hayan sido ligados a nombres de espacios de nombres que sean idénticos.

Esta restricción es equivalente a exigir que ningún elemento tenga dos atributos con el mismo nombre expandido.

Por ejemplo cada una de las etiquetas iniciales mal que sigue es ilegal:

<!-- http://www.w3.org está ligado a n1 y n2 -->
<x xmlns:n1="http://www.w3.org"
   xmlns:n2="http://www.w3.org" >
  <mal a="1"     a="2" />
  <mal n1:a="1"  n2:a="2" />
</x>

Sin embargo, las siguientes son legales, la segunda porque el espacio de nombres por defecto no se aplica a los nombres de atributos:

<!-- http://www.w3.org está ligado a n1 y es el valor por defecto -->
<x xmlns:n1="http://www.w3.org"
   xmlns="http://www.w3.org" >
  <bien a="1"     b="2" />
  <bien a="1"     n1:a="2" />
</x>

7 Conformidad de documentos

Esta especificación se aplica a los documentos XML 1.1. Para adecuarse a esta especificación, un documento DEBE estar bien formado de acuerdo con la especificación XML 1.1 [XML 1.1].

En documentos XML conformes con esta especificación, los nombres de elementos y atributos DEBEN concordar con la producción dada para QName y DEBEN satisfacer las "Restricciones sobre los espacios de nombres". Todos los restantes símbolos en el documento, que son OBLIGATORIOS para la conformidad con XML 1.1, para coincidir con la producción XML para Name, DEBEN concordar con la producción de esta especificación para NCName.

[Definición: Un documento está bien formado en espacio de nombres se se adecua a esta especificación. ]

Se sigue que en un documento bien formado en espacio de nombres:

Además, un documento bien formado en espacio de nombres también puede ser válido en espacio de nombres.

[Definición: Un documento bien formado en espacio de nombres es válido en espacio de nombres si es válido de acuerdo con la especificación XML 1.1, y todos los símbolos aparte de nombres de elementos y atributos que sean OBLIGATORIOS, para validez XML 1.1, coincidan con la producción XML para Name, coincidan con la producción de esta especificación para NCName. ]

Un documento válido en espacio de nombres:

8 Conformidad de los procesadores

Para adecuarse a esta especificación, un procesador DEBE informar las violaciones de buena formación de espacio de nombres, con la excepción de que no es OBLIGATORIO verificar que los nombres de espacio de nombres sean IRI legales.

[Definición: Un procesador XML validador que se adecue a esta especificación es validador de espacios de nombres si además informa violaciones de validez de espacios de nombres. ]

9 Identificadores de recursos internacionalizados (IRI)

Actualmente se está trabajando para producir una RFC que defina los Identificadores de recursos internacionalizados (IRI). Como este trabajo aún no está completo, esta sección da una definición sintáctica de los IRI para los objetivos de esta especificación. El Grupo Nuclear de Trabajo de XML espera producir una errata que reemplace a esta sección con una referencia al RFC cuando sea publicada.

Se aconseja a los usuarios que definan espacios de nombres que restrinjan los nombres de espacios de nombres a URI hasta que la RFC sea publicada y que programas que admitan los IRI estén en uso regular. Se aconseja también a los implementadores no rechazar nombres de espacios de nombres que violen los borradores en términos de los caracteres permitidos.

Para una definición y discusión más general de los IRI, consulte el [Borrador 5 de IRI] (trabajo en progreso).

Las referencias URI se limitan a un subconjunto de caracteres ASCII; las referencias IRI permiten la mayoría de los caracteres Unicode desde #xA0 en adelante. Los borradores anteriores del RFC de IRI (ej. [Borrador 3 IRI]) también permitían algunos de los caracteres ASCII no permitidos, pero el borrador actual ([Borrador 5 IRI]) no.

[Definición: Los caracteres adicionales permitidos en los IRI por el [Borrador 5 IRI] son: ]

[Definición: Una referencia IRI es una cadena que puede ser convertida en una referencia URI aplicando los siguientes pasos: ]

  1. Convertir la parte del nombre del anfitrión, en caso de estar presente, utilizando la operación ToASCII detallada en la Sección 4.1 del [RFC3490] con los indicadores UseSTD3ASCIIRules y AllowUnassigned como TRUE (verdadero).

  2. Libere todos los caracteres adicionales del siguiente modo:

    1. Cada carácter adicional es convertido a UTF-8 [RFC3629] como uno o más bytes.

    2. Los bytes resultantes son liberados con el mecanismo de escape URI (esto es, convertidos a %HH, donde HH es la notación hexadecimal del valor de byte).

    3. El carácter original es reemplazado por la secuencia de caracteres resultante.

Nota:

El algoritmo que se encuentra en el [Borrador 5 URI] incluye un paso de normalización UCS, sin diferenciar cuáles cadenas son referencias IRI.

A Referencias normativas

Palabras clave
RFC 2119: Key words for use in RFCs to Indicate Requirement Levels, S. Bradner, ed. IETF (Internet Engineering Task Force), Marzo 1997. Disponible en http://www.rfc-editor.org/rfc/rfc2119.txt
RFC2141
RFC 2141: URN Syntax, R. Moats, ed. IETF (Internet Engineering Task Force), Mayo 1997. Disponible en http://www.rfc-editor.org/rfc/rfc2141.txt.
RFC2396
RFC 2396: Uniform Resource Identifiers (URI): Generic Syntax, T. Berners-Lee, R. Fielding, y L. Masinter, eds. IETF (Internet Engineering Task Force), Agosto 1998. Disponible en http://www.rfc-editor.org/rfc/rfc2396.txt
RFC2732
RFC 2732: Format for Literal IPv6 Addresses in URL's, R. Hinden, B. Carpenter, y L. Masinter, eds. IETF (Internet Engineering Task Force), Diciembre 1999. Disponible en http://www.rfc-editor.org/rfc/rfc2732.txt.
RFC3490
RFC 3490: Internationalizing Domain Names in Applications (IDNA), P. Faltstrom, P. Hoffman, y A. Costello, eds. IETF (Internet Engineering Task Force), Marzo 2003. Disponible en http://www.rfc-editor.org/rfc/rfc3490.txt
RFC3629
RFC 3629: UTF-8, a transformation format of ISO 10646, F. Yergeau, ed. IETF (Internet Engineering Task Force), Noviembre 2003. Disponible en http://www.rfc-editor.org/rfc/rfc3629.txt
XML
Extensible Markup Language (XML) 1.0 (Third Edition), Tim Bray, Jean Paoli, C. M. Sperberg-McQueen, Eve Maler, y François Yergeau eds. W3C (World Wide Web Consortium), 4 Febrero 2004. Disponible en http://www.w3.org/TR/REC-xml.
XML 1.1
Extensible Markup Language (XML) 1.1, Tim Bray, Jean Paoli, C. M. Sperberg-McQueen, Eve Maler, y John Cowan eds. W3C (World Wide Web Consortium), 4 Febrero 2004. Disponible en http://www.w3.org/TR/xml11.

B Otras referencias (no normativas)

IRI draft 3
Internationalized Resource Identifiers (IRIs), M. Duerst y M. Suignard eds. Marzo 2, 2003. Disponible en http://www.w3.org/International/iri-edit/draft-duerst-iri-03.txt.
IRI draft 5
Internationalized Resource Identifiers (IRIs), M. Duerst y M. Suignard eds. Octubre 26, 2003. Disponible en http://www.w3.org/International/iri-edit/draft-duerst-iri-05.txt.
1.0 Erratas
Namespaces in XML Errata. W3C (World Wide Web Consortium). Disponible en http://www.w3.org/XML/xml-names-19990114-errata.
Relative URI deprecation
Results of W3C XML Plenary Ballot on relative URI References In namespace declarations 3-17 July 2000, Dave Hollander y C. M. Sperberg-McQueen, 6 Septiembre 2000. Disponible en http://www.w3.org/2000/09/xppa.
Requerimientos
Namespaces in XML 1.1 Requirements, Jonathan Marsh, ed. W3C (World Wide Web Consortium), Marzo 2002. Disponible en http://www.w3.org/TR/2002/WD-xml-names11-req-20020403/.

C Estructura interna de los espacios de nombres XML (no normativo)

Este apéndice ha sido eliminado.

D Cambios desde la versión 1.0 (no normativo)

Esta versión incorpora las erratas a la versión 1.0 hasta el 6 de diciembre de 2002[Erratas a 1.0]. Hay dos cambios importantes adicionales:

Hay varios cambios de redacción, incluyendo una serie de cambios y agregados de terminología pensados para mejorar la coherencia. El apéndice no normativo "Estructura interna de los espacios de nombres XML" ha sido eliminado.

E Agradecimientos (no normativo)

Este trabajo refleja las sugerencias de un número de personas extenso, incluyendo especialmente a los participantes del Grupo de Trabajo y del Grupo de Interés Especial XML del World Wide Web Consortium, y los participantes en la Actividad de Metadata del W3C. Los aportes de Charles Frankston de Microsoft fueron especialmente útiles.