RFC 
 TOC 
Atom Working Group   M Pilgrim 
  December 2003 

Auto-descubrimiento de alimentadores de Atom (PRE-BORRADOR)
es_draft-pilgrim-atom-autodiscovery-02

Nota de Traducción

Este documento se encontrará en estado de borrador durante un periodo indefinido de tiempo dedicado a efectuar las correcciones oportunas. Esta traducción se concluyó el 18 de enero de 2004. (Los posibles errores presentes en este documento, debidos a la traducción, son de la responsabilidad del traductor y no son achacables en modo alguno al autor original). Para cualquier comentario sobre la traducción dirigirse a Pedro Palazón Candel

Este documento se encuentra localizado originalmente en las páginas del autor.

La única versión normativa oficial de este documento es la versión original (en inglés): http://diveintomark.org/rfc/draft-pilgrim-atom-autodiscovery-02.html

Resumen

Este documento especifica un método estandarizado, legible por máquinas de enlazar con un "alimentador" Atom desde un documento escrito en Lenguaje de Marcas de HyperTexto(HTML) o en Lenguaje eXtensible de Marcas de HyperTexto, usando el elemento <link>.

Notas Editoriales

Este borrador NO HA SIDO enviado para ser publicado, y carece de algún estatus; debería ser referido como un "pre-borrador."

Las discusiones sobre este borrador acontecen en dos foros:

La Lista de Correo de Sintáxis de Atom
El sitio web Wiki del proyecto Atom

Las secciones resaltadas [[como esta]] indican notas editoriales que deberían ser añadidas o eliminadas antes de la publicación final.


 RFC 
 TOC 

Tabla de Contenidos

Introducción
Convenciones de Escritura
Relación con XHTML y HTML
 3.1  Definición de un elemento de auto-descubrimiento
 3.2  Reglas de sintáis heredadas de HTML
 3.3  Reglas de sintáxis heredadas de XHTML
Atributos REQUERIDOS
 4.1  atributo rel
 4.2  atributo type
 4.3  atributo href
Atributos OPCIONALES
 5.1  atributo title
Elementos de auto-descubrimiento múltiples
Ejemplos
Consideraciones IANA
Consideraciones sobre seguridad
§  Referencias
§  Señas del Autor
Colaboradores
Histórico de Revisiones
§  Declaraciones de Copyright y Propiedad Intelectual


 TOC 

1  Introducción

Atom es un formato basado en archivos XML dirigido a hacer posibles los listados de información, conocidos como "feeds", para que sean sincronizados entre quienes los publican y quienes los consumen. Dichos listados están compuestos de items, conocidos como "entradas", cada una de las cuales lleva asociada una cantidad variable de meta-datos. El uso principal de Atom se centra en la suscripción a contenidos web, tales como weblogs y generadores de titulares de noticias, bien por parte de otros sitios web, bien directamente por los propios consumidores. De cualquier modo, nada impide que Atom se emplee con otros propósitos o tipos de contenido.

El propósito del auto-descubrimiento de Atom reside en los clientes que conocen el URI de una página web para encontrar la localización del "alimentador"(feed) asociado de Atom de dicha página. Por ejemplo, digamos que un usuario final desea suscribirse al alimentador de Atom de un sitio. Su cliente agregador, preparado para Atom, podría pedirle que introdujese la página principal de dicho sitio. El cliente podría recuperar la fuente del HTML de la Página Principal, encontrar el elemento de auto-descubrimiento de Atom, y entonces recuperar el alimentador de Atom o guardar el URI del alimentador de Atom para una recuperación posterior.

Los alimentadores de Atom auto-descubiertos se pueden presentar al usuario en varias formas. En el pasado, los clientes preparados para Atom han implementado proxies locales que controlan los sitios visitados y notifican al usuario final el auto-descubrimiento de alimentadores de Atom en tiempo real de las alimentaciones del átomo adentro. Tal notificación se podría hacer directamente en las versiones futuras de navegadores web de escritorio.


 TOC 

2  Convenciones de Escritura

Los términos "DEBE", "NO DEBE", "REQUERIDO", "DEBERÍA", "NO DEBERÍA", "RECOMENDADO", "PUEDE", y "OPCIONAL" de este documento han de ser interpretados tal y como se describe en [RFC2119].

Para una breve descripción del significado de estos términos en castellano, puede consultar la sección de Terminología de la traducción al castellano de la especificación XHTML 1.0


 TOC 

3  Relación con HTML y XHTML

3.1  Definición de un elemento de auto-descubrimiento

Un elemento de auto-descubrimiento de Atom e sun elemento link, tal y como se define en la sección 12.3 de HTML 4 [W3C.REC-html401-19991224]. Tal y como sucede con los otros tipos de elementos link, un elemento de auto-descubrimiento PUEDE aparecer dentro del elemento <head> de un documento HTML o XHTML, pero NO DEBE aparecer dentro del elemento <body>.

3.2  Reglas de sintáxis heredadas de HTML

Cuando un elemento de auto-descubrimiento de Atom aparece en un documento HTML, comparte todas las reglas de restricciones y sintáxis del resto de elementos HTML. Un listado de las reglas mas relevantes se muestra a continuación:

3.3  Reglas de sintáxis heredadas de XHTML

XHTML [W3C.REC-xhtml1-20020801] es una reformulación de HTML en XML [W3C.REC-xml-20001006]. También define un elemento <link>, por lo que los documentos XHTML son contenedores apropiados para elementos de auto-descubrimiento de Atom. Cuando un elemento de auto-descubrimiento de Atom aparece en un documento XHTML, comparte todas las reglas de restricciones y sintáxis del resto de elementos XHTML.

Las reglas de sintáxis de los documentos XHTML son ligeramente diferentes de las reglas para documentos HTML. Las diferencias más relevantes aparecen en el siguiente listado:


 TOC 

4  Atributos REQUERIDOS

4.1  atributo rel

El atributo rel DEBE estar presente en un elemento de auto-descubrimiento de Atom. Tal y como se define en la sección 6.12 de HTML 4 [W3C.REC-html401-19991224], el valor del atributo rel es una lista separada por espacios de palabras clave. La lista de palabras clave DEBE incluir la palabra clave "alternate" en mayúsculas, minúsculas, o una mezcla de ambas.

A continuación se muestra una lista no exhaustiva de valores válidos del atributo rel para un elemento de auto-descubrimiento de Atom en un documento HTML o XHTML:

rel="alternate"
rel="alternate "
rel=" alternate"
rel=" alternate "
rel="foo alternate"
rel="alternate bar"
rel="foo alternate bar"
rel="ALTERNATE"
rel="Alternate"
rel="AlTeRnAtE"
rel='alternate'
rel="&#65;lternate"

En un documento HTML, las siguientes formas también son válidas:

REL="alternate"
rel=alternate

4.2  atributo type

El atributo type DEBE estar presente en un elemento de auto-descubrimiento de Atom. Tal y como se define en la sección 12.3 of HTML 4 [W3C.REC-html401-19991224], el valor del atributo type de cualquier elemento link DEBE ser un tipo registrado de medio de Internet [RFC2045]. El tipo de medio para Atom es "application/atom+xml" (Atom Syndication Format 0.3), por lo que para un elemento de auto-descubrimiento de Atom el valor del atributo type DEBE contener la cadena "application/atom+xml" en mayúsculas, minúsculas, o una mezcla de ambas.

Los siguientes son ejemplos de atributos type válidos para un elemento de auto-descubrimiento de Atom en un documento HTML o XHTML:

type="application/atom+xml"
type="application/atom+xml "
type=" application/atom+xml"
type=" application/atom+xml "
type="APPLICATION/ATOM+XML"
type="Application/Atom+Xml"

En un documento HTML, las siguientes formas también son válidas:

TYPE="application/atom+xml"

4.3  atributo href

El atributo href DEBE estar presente en un elemento de auto-descubrimiento de Atom, y su valor DEBE ser el URI ([RFC2396]) de un alimentador de Atom. El valor PUEDE ser un URI relativo MAY, y en ese caso, los clientes DEBEN resolverlo a un URI completo(sección 3 de RFC 1808 [RFC1808]) usando los URI base de un documento (sección 12.4 de HTML 4 [W3C.REC-html401-19991224]).


 TOC 

5  atributos OPCIONALES

Un elemento de auto-descubrimiento de Atom PUEDE contener cualquiera de los otros atributos del elemento link definidos en la sección 12.4 de HTML 4 [W3C.REC-html401-19991224]. Los clientes PUEDEN ignorar cualquier atributo distinto de rel, type, y href.

5.1  atributo title

El atributo title PUEDE estar presente en un elemento de auto-descubrimiento de Atom. En ese caso, el cliente DEBERÍA tratar el valor del atributo title como una representación legible por humanos del alimentador de Atom. Los clientes PUEDEN presentar dicha representación al usuario final.


 TOC 

6  Elementos de auto-descubrimiento múltiples

Un documento HTML o XHTML PUEDE contener uno o más elementos de auto-descubrimiento de Atom. Si múltiples elementos de auto-descubrimiento de Atom están presentes en un sólo documento:


 TOC 

7  Ejemplos

Cada uno de los siguientes ejemplos representan un elemento de auto-descubrimiento de Atom en un documento HTML situado en
http://www.example.com/index.html. Cada ejemplo apunta a un alientador de Atom situado en http://www.example.com/xml/index.atom.

<link rel="alternate" type="application/atom+xml"
href="http://www.example.com/xml/index.atom">
<link rel="alternate" type="application/atom+xml"
href="xml/index.atom">
<link rel="alternate" type="application/atom+xml"
href="/xml/index.atom">
<link rel='alternate' type='application/atom+xml'
href='http://www.example.com/xml/index.atom'>
<link rel=alternate type='application/atom+xml'
href="http://www.example.com/xml/index.atom">
<link rel="AlTeRnAtE" type="application/atom+xml"
href="http://www.example.com/xml/index.atom">
<link rel="alternate" type="APPLICATION/ATOM+XML"
href="http://www.example.com/xml/index.atom">
<LINK REL="alternate" TYPE="application/atom+xml"
HREF="http://www.example.com/xml/index.atom">
<link href="http://www.example.com/xml/index.atom"
type="APPLICATION/ATOM+XML" rel="alternate">
<link rel="alternate foo" type="application/atom+xml"
href="http://www.example.com/xml/index.atom">
<link rel="foo alternate" type="application/atom+xml"
href="http://www.example.com/xml/index.atom">
<link rel="foo alternate bar" type="application/atom+xml"
href="http://www.example.com/xml/index.atom">
<link rel="&#65;lternate" type="application/atom+xml"
href="http://www.example.com/xml/index.atom">
<link rel="alternate" type="application/atom&#43;xml"
href="http://www.example.com/xml/index.atom">

Cada uno de los siguientes ejemplos representan un elemento de auto-descubrimiento de Atom en un documento XHTML situado en http://www.example.com/index.xhtml. Cada ejemplo apunta a un alientador de Atom situado en http://www.example.com/xml/index.atom.

<link rel="alternate" type="application/atom+xml"
href="http://www.example.com/xml/index.atom" />
<link rel="alternate" type="application/atom+xml"
href="xml/index.atom" />
<link rel="alternate" type="application/atom+xml"
href="/xml/index.atom" />
<link rel='alternate' type='application/atom+xml'
href='http://www.example.com/xml/index.atom' />
<link rel="AlTeRnAtE" type="application/atom+xml" 
href="http://www.example.com/xml/index.atom" />
<link rel="alternate" type="APPLICATION/ATOM+XML" 
href="http://www.example.com/xml/index.atom" />
<link href="http://www.example.com/xml/index.atom" 
type="APPLICATION/ATOM+XML" rel="alternate" />
<link rel="alternate foo" type="application/atom+xml" 
href="http://www.example.com/xml/index.atom" />
<link rel="foo alternate" type="application/atom+xml" 
href="http://www.example.com/xml/index.atom" />
<link rel="foo alternate bar" type="application/atom+xml" 
href="http://www.example.com/xml/index.atom" />
<link rel="&#65;lternate" type="application/atom+xml"
href="http://www.example.com/xml/index.atom" />
<link rel="alternate" type="application/atom&#43;xml"
href="http://www.example.com/xml/index.atom" />

Este es un ejemplo de un documento HTML completo situado en
http://www.example.com/index.html. Contiene un elemento de auto-descubrimiento de Atom que apunta a un alimentador de Atom en http://www.example.com/index.html?format=atom.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
 "http://www.w3.org/TR/html4/strict.dtd">
<html lang="en">
<head>
<link rel="alternate"
      type="application/atom+xml"
      href="?format=atom">
</head>
</html>

Este es un ejemplo de un documento HTML completo situado en
http://www.example.com/index.html. Contiene un elemento de auto-descubrimiento de Atom que apunta a un alimentador de Atom en http://www.example.org/index.atom. Usa un URI relativo al URI base especificado en el elemento <base>.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
 "http://www.w3.org/TR/html4/strict.dtd">
<html lang="en">
<head>
<base href="http://www.example.org/">
<link rel="alternate"
      type="application/atom+xml"
      href="index.atom">
</head>
</html>

Este es un ejemplo de un documento HTML completo situado en
http://www.example.com/index.html. Contiene tres elementos de auto-descubrimiento que apuntan a alimentadores de Atom en http://www.example.com/xml/index.atom, http://www.example.com/xml/comments.atom, y http://example.org/index.atom respectivamente. Usa el atributo title opcional para etiquetar cada elemento de auto-descubrimiento.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
 "http://www.w3.org/TR/html4/strict.dtd">
<html lang="en">
<head>
<link rel="alternate"
      type="application/atom+xml"
      title="Main Atom feed"
      href="/xml/index.atom">
<link rel="alternate"
      type="application/atom+xml"
      title="Recent comments feed"
      href="/xml/comments.atom">
<link rel="alternate"
      type="application/atom+xml"
      title="Atom feed (mirror)"
      href="http://example.org/index.atom">
</head>
</html>

 TOC 

8  Consideraciones IANA

Este documento depende del registro del tipo de medio Atom, que está definido en Atom Syndication Format 0.3.


 TOC 

9  Consideraciones sobre Seguridad

Dado que el único propósito de los elementos de auto-descubrimiento de Atom es posibilitar a los clientes la resolución de una referencia a un URI dado por el atributo href, los problemas de seguridad que se listan en la sección 6 de [RFC1738] deberían ser consideradas.

Un autor malicioso podría usar el pseudo-esquema "javascript:" para incluir un script en el atributo href de un elemento de auto-descubrimiento. Si el cliente tiene la habilidad de ejecutar el script en respuesta a los URIs "javascript:", podría ser consciente del contexto de seguridad en el que se está ejecutando el script, y debería ofrecer al usuario final la posibilidad de impedir dicha ejecución.


 TOC 

Referencias

[RFC1738] Berners-Lee, T.Masinter, L. and McCahill, M., "Uniform Resource Locators (URL)", RFC 1738, December 1994.
[RFC1808] Fielding, R., "Relative Uniform Resource Locators", RFC 1808, June 1995.
[RFC2045] Freed, N. and Borenstein, N.S., "Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message Bodies", RFC 2045, November 1996.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC2396] Berners-Lee, T.Fielding, R.T. and Masinter, L., "Uniform Resource Identifiers (URI): Generic Syntax", RFC 2396, August 1998.
[W3C.REC-html401-19991224] Raggett, D, Hors, A and Jacobs, I, "HTML 4.01 Specification", W3C REC REC-html401-19991224, December 1999.
[W3C.REC-xhtml1-20020801] Pemberton, S, "XHTML™ 1.0 The Extensible HyperText Markup Language (Second Edition)", W3C REC REC-xhtml1-20020801, August 2002.
[W3C.REC-xml-20001006] Bray, T, Paoli, J, Sperberg-McQueen, C and Maler, E, "Extensible Markup Language (XML) 1.0 (Second Edition)", W3C REC REC-xml-20001006, October 2000.

 TOC 

Señas del Autor

  Mark Pilgrim
 
EMail:  mark@diveintomark.org
URI:  http://diveintomark.org/
 

 TOC 

A  Colaboradores

Las siguientes personas han contribuido al contenido de esta especificación: [[ TODO ]].


 TOC 

B  Histórico de Revisiones

2003-12-23:
Añadidas consideraciones sobre seguridad
Añadida anotación sobre lo significativo del orden con múltiples elementos de auto-descubrimiento
2003-12-22:
Reordenada la sección "Relación con XHTML y HTML"
Añadidos ejemplos de valores de atributos entre comillas simples
Añadidos ejemplos de entidades numéricas en los valores de los atributos rel y type
2003-12-21:
Primer borrador

Nota del traductor: En el futuro se incorporarán, adicionalmente a las referencias a los originales en inglés, referencias a las versiones en castellano de cuantos documentos se encuentren traducidos.