W3CWD-xml-names-19980802


Espacios de Nombres en XML

Borrador de Trabajo del World Wide Web Consortium 2 de Agosto de 1998

Esta versión:
http://www.w3.org/TR/1998/WD-xml-names-19980802
http://www.w3.org/TR/1998/WD-xml-names-19980802.html
http://www.w3.org/TR/1998/WD-xml-names-19980802.xml
última versión:
http://www.w3.org/TR/WD-xml-names
Versiones previas:
http://www.w3.org/TR/1998/WD-xml-names-19980518
http://www.w3.org/TR/1998/WD-xml-names-19980327
Editores:
Tim Bray (Textuality) <tbray@textuality.com>
Dave Hollander (Hewlett-Packard Company) <dmh@corp.hp.com>
Andrew Layman (Microsoft) <andrewl@microsoft.com>
Traductor:
Jaime Sagarduy <xml@poboxes.com>

Copyright  ©  1998 W3C (MIT, INRIA, Keio), Reservados todos los derechos. A este documento se le aplican todas las reglas de responsabilidad, marcas de fábrica, uso de documentos y licencia de software del W3C.


Nota del Traductor

En este documento se ha tratado de traducir (y puede que se haya conseguido) el borrador de la "XML Namespaces Specification". Se ha traducido la expresión namespace a "espacios de nombres". Aunque no se trate de una versión definitiva se confía en que los cambios sean mínimos (si se producen). Además se considera un documento fundamental para todas aquellas personas interesadas en XML. Para cualquier duda, sugerencia o comentario, por favor diríjanse a Jaime Sagarduy.


Estado de este documento

Este borrador de especificación es un trabajo en progreso que representa el consenso actual del Grupo de Trabajo XML del W3C. éste es un borrador de trabajo del W3C para la revisión por parte de los miembros del W3C y otras partes interesadas. La publicación del borrador de trabajo no implica que los miembros del W3C lo avalen.

Este borrador trata una revisión de la especificación de los espacios de nombres. Aunque está inacabado en algunos aspectos, el Grupo de Trabajo pretende mantener las características descritas funcionalmente inalteradas salvo que se descubran problemas durante los trabajos de implementación. Para descubrir dichos problemas tan pronto como sea posible, se ha formado un grupo editorial especial para recibir las sugerencias (feedback) de los implementadores durante un periodo de un mes, a partir de la publicación de este borrador, y que termina tras la reunión del Grupo de Trabajo en Montreal, los días 22 y 23 de Agosto. Por favor envíen sus informes de experiencias de implementación a xml-names-issues@w3.org.

Aunque no se anticipan cambios sustanciales, se advierte que es posible que éstos se produzcan, por lo que se aconseja la implementación de software experimental o software que pueda ser fácilmente actualizado, de acuerdo con esta especificación. El Grupo de Trabajo XML no permitirá que ninguna implementación temprana restrinja su capacidad para realizar cambios en cualquiera de las versiones de esta especificación. Esto es un borrador y puede ser actualizado, reemplazado o quedar obsoleto en cualquier momento. No es apropiado citar los Borradores de Trabajo del W3C, a no ser que se especifique que se trata de un "trabajo en curso".

Es intención del Grupo de Trabajo que está capacidad de los espacios de nombres se convierta en una parte de una futura versión de la especificación de XML.

Abstracto

Los espacios de nombres XML proporcionan un método simple para la calificación de los nombres utilizados en los documentos del Lenguaje Extensible de Marcación (Extensible Markup Language), asociándoles espacios de nombres identificados por URIs.

Tabla de Contenidos

  1. Motivación y Resumen
  2. Declaración de Espacios de Nombres
  3. Nombres Calificados
  4. Utilización de Nombres Calificados
  5. ámbito y Espacios de Nombres por Defecto
  6. Estructura Interna de los Espacios de Nombres XML
       6.1. La Insuficiencia de los Espacios de Nombres Tradicionales
       6.2. Particiones de los Espacios de Nombres XML
       6.3. Tipos de Elementos Expandidos y Nombres de Atributos
       6.4. Nombres de Atributos Expandidos únicos
  7. Conformancia

Apéndices

  1. Agradecimientos
  2. Referencias

1. Motivación y Resumen

El Grupo de Trabajo prevé el auge de los documentos XML que contienen marcaciones que están definidas y utilizadas por diferentes módulos de software. Una de las motivaciones para esta modularidad es que, si existe un conjunto de marcaciones disponibles, que son entendibles y para las que existe software útil disponible, es mejor la reutilización de estas marcaciones que el hecho de reinventar unas nuevas.

Dichos documentos, que contendrán marcaciones de múltiples fuentes independientes entre sí, pueden tener problemas de reconocimiento y colisión. Los módulos software capaces de reconocer las marcaciones (etiquetas y atributos) para las que han sido diseñados, pueden mostrar colisiones cuando aparezcan marcaciones creadas para otros paquetes de software, pero que utilizan el mismo tipo de elemento o nombre de atributo.

Estas consideraciones requieren que las construcciones de documentos posean nombres universales, cuyo ámbito se extienda más allá del documento que las contiene. Esta especificación describe un mecanismo, los espacios de nombres XML, que lleva a cabo esta misión.

[Definición:] Un espacio de nombres XML es una colección de nombres, identificados por un URI, que se utiliza en los documentos XML como tipos de elemento y nombres de atributo. Los espacios de nombres XML difieren de los "espacios de nombres" convencionales, utilizados en otras disciplinas de la computación, en que éstos poseen una estructura interna y no son, matemáticamente hablando, un conjunto propiamente dicho. Estos aspectos se discuten en la sección "6. Estructura Interna de los Espacios de Nombres XML".

Los nombres de los espacios de nombres XML pueden aparecer como nombres calificados, que contienen el carácter "dos puntos", separando el nombre en un prefijo de espacio de nombres y su parte local. El prefijo, que es mapeado a un URI, selecciona un espacio de nombres. La combinación de los URIs de espacios de nombres universalmente gestionados y el espacio de nombres propio del documento produce unos identificadores que garantizan la unicidad universal. Se proporciona un mecanismo para establecer valores por defecto al prefijo, para evitar la confusión y mejorar la legibilidad.

Los URIs pueden contener caracteres no permitidos en los nombres, por lo que no pueden ser utilizados directamente como prefijos de espacios de nombres. El prefijo del espacio de nombres sirve como proxy para el URI. Se utiliza una sintaxis basada en atributos descrita más abajo para declarar la asociación del prefijo de espacio de nombres con un URI. El software que soporte esta propuesta de espacios de nombres debe reconocer y actuar en estas declaraciones y prefijos.

2. Declaración de Espacios de Nombres

[Definición:] Un espacio de nombres es declarado utilizando un atributo cuyo prefijo es xmlns. Muchos de los símbolos no-terminales en las reglas de producción de esta especificación no están definidos aquí, sino en la especificación XML [XML]. Cuando los no-terminales definidos aquí tengan los mismos nombres que los definidos en la especificación XML, las reglas de producción de esta especificación serán iguales a un subconjunto de las cadenas correspondientes a las reglas de la otra especificación.

Declaración de espacio de nombres utilizando atributos
[1] NSDef ::= PrefixDef Eq SystemLiteral [ REN: URI Vacío ]
[2] PrefixDef ::= 'xmlns' (':' NCName)?
[3] NCName ::= (Letter | '_') (NCNameChar)* /* Un Nombre XML, menos ":" */
[4] NCNameChar ::= LetterDigit | '.' | '-' | '_' | CombiningCharExtender

[Definición:] El símbolo SystemLiteral de la producción NSDef es un URI cuya que funciona como un nombre de espacio de nombres para identificar el espacio de nombres. El nombre de espacio de nombres, debe tener las características de unicidad y persistencia, para servir al propósito para el que ha sido creado. No se trata de ningún objetivo el ser directamente utilizable para la obtención de un esquema (schema), si existe alguno. Un ejemplo de una sintaxis diseñada con esos objetivos son los "Nombres de Recurso Uniformes" (Uniform Resource Names) [RFC2141]. Sin embargo, los URLs comunes pueden ser gestionados de tal manera que se alcancen estos mismos objetivos.

[Definición:] En la producción PrefixDef, si se proporcionan el carácter dos puntos opcional y el símbolo NCName, entonces ese NCName es el prefijo de espacio de nombres, utilizado para asociar nombres con este espacio de nombres en el ámbito del elemento al que está adjunto la declaración.

[Definición:] Si no se proporcionan el carácter dos puntos y el símbolo NCName, entonces el nombre de espacio de nombres asociado es el del espacio de nombres por defecto en el ámbito del elemento al que está adjunto la declaración.

Restricción de Espacio de Nombres: URI Vacío
El símbolo SystemLiteral puede estar vacío sólo si el símbolo PrefixDef es xmlns, es decir, si por ejemplo se declara un espacio de nombres por defecto. El efecto de dicha declaración es anular cualquier declaración de nivel superior del espacio de nombres por defecto, estableciendo su valor a "nulo". Los espacios de nombres por defecto y la anulación de declaraciones se discute más ampliamente en la sección "5. ámbito y Espacios de Nombres por Defecto".

Ejemplo de declaración de espacio de nombres:

<?xml version="1.0"?>
  <x xmlns:edi='http://ecommerce.org/schema'>
    <!-- el espacio de nombres edi se aplica al elemento "x" y a su contenido -->
  </x>


3. Nombres Calificados

[Definición:] En los documentos XML conformantes con esta especificación, algunos nombres (las construcciones correspondientes al no-terminal Name) pueden darse como nombres calificados, definidos de la siguiente manera:

Nombre Calificado
[5] QName ::= (Prefix ':')? LocalPart
[6] Prefix ::= NCName
[7] LocalPart ::= NCName

El símbolo Prefix proporciona el prefijo de espacio de nombres, que es parte del nombre calificado, y debe ser asociado con el URI de espacio de nombres en una declaración de espacio de nombres. [Definición:] El símbolo LocalPart proporciona la parte local del nombre calificado.

El prefijo sólo funciona como una reserva de espacio para el nombre de espacio de nombres. Las aplicaciones deben utilizar el nombre del espacio nombres, no el prefijo, en la construcción de nombres cuyo ámbito se extienda más allá del documento que lo contiene.

4. Utilización de Nombres Calificados

En los documentos XML conformantes con esta especificación, los tipos de elementos son dados como nombres calificados, de la siguiente manera:

Tipos de Elementos y Nombres de Atributo
[8] STag ::= '<' QName (S Attribute)* S? '>' [ REN: Prefijo Declarado ]
[9] ETag ::= '</' QName S? '>' [ REN: Prefijo Declarado ]
[10] EmptyElement ::= '<' QName (S Attribute)* S? '/>' [ REN: Prefijo Declarado ]

Los nombres de atributo se dan como nombres calificados, de la siguiente manera:

Atributo
[11] Attribute ::= QName Eq AttValue [ REN: Prefijo Declarado ]

Restricción de Espacio de Nombres: Prefijo Declarado
El prefijo de espacio de nombres, a no ser que sea xml o xmlns, debe haber sido declarado en una declaración de espacio de nombres. Los prefijos de espacios de nombres xml y xmlns están reservados, y se considera que han sido declarados implícitamente. Los prefijos que comienzan con la secuencia de tres letras x, m, l, en cualquier combinación de mayúsculas y minúsculas, están reservados para su uso por las especificaciones XML y las relativas a ésta.

Los nombres de Elemento y tipos de atributo también son dados como nombres calificados cuando aparecen en declaraciones en la DTD:

Nombres Calificados en Declaraciones
[12] doctypedecl ::= '<!DOCTYPE' S QName (S ExternalID)? S? ('[' (markupdeclPEReferenceS)* ']' S?)? '>'
[13] elementdecl ::= '<!ELEMENT' S QName S contentspec S? '>'
[14] cp ::= (QNamechoiceseq) ('?' | '*' | '+')?
[15] Mixed ::= '(' S? '#PCDATA' (S? '|' S? QName)* S? ')*'
| '(' S? '#PCDATA' S? ')'
[16] AttlistDecl ::= '<!ATTLIST' S QName AttDef* S? '>'
[17] AttDef ::= S QName S AttType S DefaultDecl

5. ámbito y Espacios de Nombres por Defecto

Se considera que la declaración de espacios de nombres es aplicable al elemento en que se especifica y a todos los elementos dentro del contenido de ese elemento, a menos que sea anulado por otra declaración de espacio de nombres, con la misma parte de PrefixDef:

<?xml version="1.0"?>
<!-- todo aquí esta explícitamente en el espacio de nombres HTML -->
<html:html xmlns:html='http://www.w3.org/TR/REC-html40'>
  <html:head><html:title>Pronóstico</html:title></html:head>
  <html:body><html:p>Movido 
    <html:a href='http://frob.com'>aquí</html:a></html:p></html:body>
  </html:html>

Se pueden declarar múltiples prefijos de espacios de nombres como atributos de un único elemento, como se muestra en el siguiente ejemplo:

<?xml version="1.0"?>
<!-- ambos prefijos de espacio de nombres están disponibles a continuación -->
<lb:libro xmlns:lb='urn:loc.gov:libros'
         xmlns:isbn='urn:ISBN:0-395-36341-6'>
    <lb:titulo>Más barato que una Docena</lb:titulo>
    <isbn:numero>1568491379</isbn:numero>
</lb:libro>

Un espacio de nombres por defecto se aplica al elemento dónde está declarado (si ese elemento no posee prefijo de espacio de nombres), y a todos los elementos sin prefijo dentro del contenido del ese elemento. Los espacios de nombres por defecto no se aplican directamente a los atributos. El espacio de nombres de un atributo sin prefijo es una función del tipo del elemento al cual está adjunto, y al espacio de nombres (si hubiese alguno) de ese elemento. Para mayor información, véase la sección "6. Estructura Interna de los Espacios de Nombres XML".

<?xml version="1.0"?>
<!-- otra vez, todo está en el espacio de nombres HTML, por defecto -->
<html xmlns='http://www.w3.org/TR/REC-html40'>
  <head><title>Pronóstico</title></head>
  <body><p>Movido
    <a href='http://frob.com'>aquí</a>.</p></body>
  </html>

<?xml version="1.0"?>
<!-- los nombres no prefijados pertenecen a "libros" -->
<libro xmlns='urn:loc.gov:libros'
      xmlns:isbn='urn:ISBN:0-395-36341-6'>
    <titulo>Más barato que una Docena</titulo>
    <isbn:numero>1568491379</isbn:numero>
</libro>

A continuación otro ejemplo, más extenso, del ámbito de los espacios de nombres:

<?xml version="1.0"?>
<!-- inicialmente, el espacio de nombres por defecto es "libros" -->
<libro xmlns='urn:loc.gov:libros'
      xmlns:isbn='urn:ISBN:0-395-36341-6'>
    <title>Más barato que una Docena</title>
    <isbn:numero>1568491379</isbn:numero>
    <notas>
      <!-- cambiamos a HTML para incluir algunos comentarios -->
      <p xmlns='urn:w3-org-ns:HTML'>
          Este es un libro <i>divertido</i>.
      </p>
    </notas>
</libro>

El espacio de nombres por defecto, una vez declarado, puede ser "anulado":

<?xml version='1.0'?>
<Cervezas>
  <!-- el espacio de nombres por defecto es HTML -->
  <table xmlns='http://www.w3.org/TR/REC-html40'>
   <tr><td>Nombre</td><td>Origen</td><td>Descripción</td></tr>
   <tr> 
     <!-- cambiamos el espacio de nombres para las celdas de la tabla -->
     <td><marca xmlns="">Huntsman</marca></td>
     <td><origen xmlns="">Bath, UK</origen></td>
     <td>
       <detalles xmlns=""><clase>Amarga</clase><lupulo>Fuggles</lupulo>
         <pros>Buen lúpulo, suave de alcohol, refrecante</pros>
         <contras>Frágil y variable</contras>
         </detalles>
        </td>
      </tr>
    </table>
  </Cervezas>

6. Estructura Interna de los Espacios de Nombres XML

6.1. La Insuficiencia de los Espacios de Nombres Tradicionales

En las disciplinas de la computación, el término "espacio de nombres" convencionalmente hace referencia a un conjunto de nombres, por ejemplo a una colección que no contenga duplicados. Sin embargo, tratar los nombres utilizados en las marcaciones XML como en dichos espacios de nombres conllevaría graves perjuicios en su utilidad. La utilización primaria de esos nombres en los documentos XML es posibilitar la identificación, de las estructuras lógicas en los documentos, por parte de módulos software, mecanismos de visualización basados en hojas de estilo y validadores guiados por esquemas. Veamos el siguiente ejemplo:

<seccion><titulo>Firma de Libros</titulo>
<firma>
  <autor titulo="Sr" nombre="Vikram Seth" />
  <libro titulo="Un Chico Adecuado" precio="$22.95" />
</firma>
<firma>
  <autor titulo="Dr" nombre="Oliver Sacks" />
  <libro titulo="La Isla del Color Ciego" precio="$12.95" />
</firma>
</seccion>

En este ejemplo tenemos tres apariciones del nombre titulo dentro de marcaciones, y el nombre por sí sólo no proporciona suficiente información como para permitir el procesamiento correcto por parte de un módulo software.

Otro área problemática viene del uso de atributos "globales". Como se ilustra en el siguiente ejemplo, se va a visualizar un fragmento de un documento XML utilizando una hoja de estilo CSS:

<RESERVA>
 <NOMBRE HTML:CLASS="largeSansSerif">Layman, A</NOMBRE>
 <ASIENTO CLASS="Y" HTML:CLASS="largeMonotype">33B</ASIENTO>
 <SALIDA>1997-05-24T07:55:00+1</SALIDA>
</RESERVA>

en este caso, el atributo CLASS, que describe la tarifa y toma los valores "J", "Y" y "C", es distinto a todos los niveles semánticos del atributo HTML:CLASS, que se utiliza para obtener los efectos de formateo de CSS.

XML 1.0 no proporciona una método para declarar atributos "globales". Los elementos como el atributo CLASS de HTML son globales sólo en su descripción y en su interpretación por parte de las aplicaciones HTML. Sin embargo, dichos atributos, cuya gran característica diferenciadora es que sus nombres son únicos, pueden aparecer frecuentemente en gran variedad de aplicaciones.

6.2. Particiones de los Espacios de Nombres XML

Para alcanzar el objetivo de hacer útiles en la obtención de su propósito a los nombres calificados y los no calificados, se identifican los nombres que aparezcan en los espacios de nombres XML como pertenecientes a uno de los múltiples y disjuntos espacios de nombres tradicionales, denominados particiones de espacios de nombres. Las particiones son:

La Partición de Todos los Tipos de Elemento
Todos los tipos de elemento en un espacio de nombres XML aparecen en esta partición. Cada uno posee una única parte local. La combinación del nombre del espacio de nombres y la parte local identifica únicamente el tipo de elemento.
La Partición de Atributos Globales
Esta partición contiene los nombres de todos los atributos que son definidos en este espacio de nombres para ser globales. La única característica requerida para un atributo global es que su nombre sea único en la partición de atributos globales. Esta especificación no hace ninguna aserción sobre la correcto utilización de dichos atributos. La combinación del nombre de espacio de nombres y el nombre de atributo identifica únicamente al atributo global.
Las Particiones Por Tipo de Elemento
Cada tipo en la Partición de Todos los Tipos de Elemento posee un espacio de nombres asociado en el que aparecen los names de los atributos no calificados que se dan para ese elemento. éste es espacio de nombres tradicional porque la aparición de nombres de atributos duplicados en un elemento está prohibida en la especificación de XML 1.0. La combinación del nombre de atributo con el tipo del elemento y el nombre de espacio de nombres identifica únicamente cada atributo no calificado.

En los documentos XML conformantes con esta especificación, los nombres de todos los atributos calificados (prefijados) son asignados al atributo global de la partición, y los nombres de todos los atributos no calificados son asignados a la partición por tipo de elemento apropiada.

6.3. Tipos de Elementos Expandidos y Nombres de Atributos

Por conveniencia a la hora de especificar reglas y hacer comparaciones, se define un formulario expandido, expresado aquí en sintaxis de elemento XML, para cada tipo de elemento y nombre de atributo en un documento XML.

[Definición:] Un tipo de elemento expandido es expresado como un elemento vacío de XML del tipo ExpEType. Posee un tipo de atributo requerido que proporciona la Parte Local (LocalPart) del tipo, y un atributo denominado ns opcional, que si el elemento está calificado, proporciona su nombre de espacio de nombres.

[Definición:] Un nombre de atributo expandido es expresado como un elemento vacío de XML del tipo ExpAName. Posee un nombre de atributo requerido que le proporciona el nombre. Si el atributo es global, posee un atributo requerido denominado ns que proporciona el nombre de espacio de nombres. Por otro lado, si posee un atributo requerido denominado eltype, éste proporciona el tipo del elemento adjunto, y un atributo opcional denominado elns que proporciona el nombre del espacio de nombres, si es conocido, del elemento adjunto.

Unas pequeñas variaciones en los ejemplos dados anteriormente ilustrarán el trabajo de los tipos de elementos expandidos y nombres de atributos. Los siguientes dos fragmentos están, cada uno de ellos, seguidos de una tabla que muestra los nombres expandidos:

<!-- 1 --> <seccion xmlns='urn:com:books-r-us'>
<!-- 2 -->   <titulo>Firma de Libros</titulo>
<!-- 3 -->   <firma>
<!-- 4 -->     <autor titulo="Sr" nombre="Vikram Seth" />
<!-- 5 -->     <libro titulo="Un Chico Adecuado" precio="$22.95" />
             </firma>
           </seccion>

Los nombres se expandirían de la siguiente manera:

LíneaNombreExpandido
1seccion<ExpEType type="seccion" ns="urn:com:books-r-us" /> 
2titulo<ExpEType type="titulo" ns="urn:com:books-r-us" /> 
3firma<ExpEType type="firma" ns="urn:com:books-r-us" />
4autor<ExpEType type="autor" ns="urn:com:books-r-us" /> 
4titulo<ExpAName name='titulo' eltype="autor" elns="urn:com:books-r-us" />
4nombre<ExpAName name='nombre' eltype="autor" elns="urn:com:books-r-us" />
5libro<ExpEType type="libro" ns="urn:com:books-r-us" />
5titulo<ExpAName name='titulo' eltype="libro" elns="urn:com:books-r-us" />
5precio<ExpAName name='precio' eltype="libro" elns="urn:com:books-r-us" />

<!-- 1 --> <RESERVA xmlns:HTML="http://www.w3.org/TR/REC-html40">
<!-- 2 --> <NOMBRE HTML:CLASS="largeSansSerif">Layman, A</NOMBRE>
<!-- 3 --> <ASIENTO CLASS="Y" HTML:CLASS="largeMonotype">33B</ASIENTO>
<!-- 4 --> <HTML:A HREF='/cgi-bin/ResStatus'>Comprobar Estado</HTML:A>
<!-- 5 --> <SALIDA>1997-05-24T07:55:00+1</SALIDA></RESERVA>

1RESERVA<ExpEType type="RESERVA" />
2NOMBRE<ExpEType type="NOMBRE" />
2HTML:CLASS<ExpAName name="CLASS" ns=http://www.w3.org/TR/REC-html40 />
3ASIENTO<ExpEType type="ASIENTO" />
3CLASS<ExpAName name="CLASS" eltype="SEAT">
3HTML:CLASS<ExpAName name="CLASS" ns="http://www.w3.org/TR/REC-html40" />
4HTML:A<ExpEType type="A" ns="http://www.w3.org/TR/REC-html40" />
4HREF<ExpAName name="HREF" eltype="A" elns="http://www.w3.org/TR/REC-html40" />
5SALIDA<ExpEType type="SALIDA" />

6.4. Nombres de Atributos Expandidos únicos

En los documentos XML conformantes con esta especificación, ningún elemento puede tener dos atributos cuyos nombres expandidos sean equivalentes, es decir, que tengan los mismos pares atributo-valor y elementos hijo con el mismo contenido.

7. Conformancia

Los nombres en los documentos XML que sean conformes a esta especificación son tipos de elementos y nombres de atributo que cumplen la producción QName y que satisfacen la "Restricción de Espacio de Nombres" descrita en este documento.

Un documento XML es conformante con esta especificación, si el resto de "tokens" del documento que sean requeridos, para la conformancia con XML, cumplen la producción XML para el símbolo Name, cumplen la producción NCName de esta especificación, y los elementos poseen atributos con nombres expandidos únicos.

El efecto de la conformancia es que es dicho documento:

Estrictamente hablando, los valores de atributo declarados para ser de los tipos ID, IDREF(S), ENTITY(IES) y NOTATION también son Nombres (Names) y por eso no deben contener caracteres 'dos puntos'. Sin embargo, el valor de tipo de atributo declarado es, en principio, solamente accesible en documentos que hayan sido validados. Es decir, en los documentos XML bien-formados, no se puede asegurar que el contenido de los valores de los atributos haya sido comprobado para su conformancia con esta especificación.


Apéndices

A. Agradecimientos

Este documento refleja el trabajo de un gran número de personas, incluyendo especialmente a los miembros del Grupo de Trabajo en XML del Consorcio World Wide Web, del Grupo Especial de Interés y a los participantes en la "Actividad sobre Metadatos" del W3C.

B. Referencias

RFC2141
IETF (Internet Engineering Task Force) RFC 2141: URN Syntax, ed. R. Moats. Mayo de 1997.
XML
Extensible Markup Language (XML) 1.0, eds. Tim Bray, Jean Paoli y C. M. Sperberg-McQueen. 10 de Febrero de 1998. Disponible en http://www.w3.org/TR/REC-xml, en inglés, o en español.