[Indice]


Canales RSS

¿Qué son y para qué sirven?

Los Rich Site Summary (otros autores afirman que es el acrónimo de Really Simple Syndication) o RSS, son unos ficheros escritos en un dialecto de XML 1.0, que deben cumplir las especificaciones de la W3C, y son utilizados para publicar resúmenes de contenidos de un sitio web. Su finalidad básica es evitar a los clientes el tener que navegar constantemente por sus sitios preferidos buscando novedades, y está muy indicado si las páginas cambian con frecuencia de contenido, como por ejemplo, periódicos, blogs, etc. A estos canales se les llama también fuentes de contenidos o "feeds" (alimentadores en inglés).

Aunque no es oficial, este icono se ha convertido en el símbolo estándar de los canales RSS:  
Y en algunas páginas también puedes encontrarlos con alguno de estos otros:

Y puede que te preguntes qué es eso del "xml". El xml (eXtensible Markup Language) es un lenguaje parecido al html que ya conoces, pero a diferencia de éste, en el que el nombre de las etiquetas (o elementos, como se les ha llamado en esta guía) ya están predefinidos, el programador puede crear las etiquetas que quiera y cuantas quiera, según las necesidades de su aplicación. Esto, en la práctica, se traduce en que con xml se pueden crear sublenguajes, y por tanto, el xml es en realidad un "metalenguaje".

Ejemplos de sublenguajes xml son, además del RSS que nos ocupa, el xhtml o los ficheros del reproductor DEW de los que se habla en otras secciones de la guía

¿Cómo se leen?

Para acceder a la información de los canales RSS hay que suscribirse a ellos. Esta suscripción se puede hacer mediante programas lectores de canales, llamados "agregadores", que son algo parecido a los programas clientes de correo electrónico o de noticias. También se puede hacer directamente con la mayoría de navegadores actuales. Esta, probablemente, es la opción más cómoda. Leer un RSS no es lo mismo que navegar por el sitio que lo contiene. El símil más parecido es el de un cliente de e-mail, solo que en lugar de mirar cada cierto tiempo el buzón para ver si hay correos nuevos, se mira el alimentador para ver si ha cambiado.

¿Cómo se monta un canal RSS?

Es muy sencillo: solamente tienes que informar al navegador cliente de que tienes un canal disponible. En el servidor no hay que tocar nada. Todo este invento se basa en escribir (y mantener al dia, claro) un fichero en xml con las novedades que haya, y listo. Si el volumen de noticias a incluir es grande, se debería instalar algún programa que los genere automáticamente, y también puede ser buena idea separar las noticias por temas, generando cuantos ficheros xml sean necesarios y poner todos los enlaces en una página índice, como suelen hacer los periódicos.

Para que el navegador del visitante de nuestra página sepa que hay un canal RSS activo, simplemente hay que añadir una entrada de referencia en la cabecera de la página (<HEAD>) y un enlace dentro del cuerpo (<BODY>) para saber dónde está el fichero o ficheros.


<HTML>
<HEAD>
  <TITLE>Canal RSS</TITLE>
  <link rel="alternate" type="application/rss+xml"  
  href="http://miservidor.com/rss.xml" title="Canal RSS">>
</HEAD>
<BODY>

<a href="http://miservidor.com/rss.xml" title="Canal RSS">Suscríbase
 <img src="rss.png" border="0" width="25" height="25"> </a>

</BODY>
</HTML>

Fíjate en que en todas las referencias la dirección del fichero, tanto en la cabecera como en el enlace, es absoluta. En efecto, si el cliente es un navegador valdrían las direcciones relativas, pero como ya se ha dicho, el cliente puede ser un programa que no navega, sino que simplemente muestra el resumen de noticias que hayamos publicado, y necesitará saber de dónde extraerlas. Además, una vez suscritos al canal, los programas o navegadores explorarán periódicamente el fichero xml sin navegar por el sitio, y por tanto, una ruta relativa no serviría para llegar a él.

¿Cómo se escribe el fichero xml para un canal RSS?

Los ficheros xml, al igual que los html, se pueden escribir con cualquier editor de texto "transparente", es decir, sin formato ni caracteres extraños a la tabla ASCII. Todo lo que no sea así habrá que codificarlo, también como en html, pero mucho más estricto. Un solo error en el fichero hará que éste no funcione. Por tanto, es buena idea pasarlo por un validador xml antes de ponerlo en su sitio de servicio. En internet hay muchas páginas y programas de validación xml, y también se puede utilizar el servicio de validación de la W3C.

Este es un modelo de fichero xml para un RSS:

<?xml version="1.0" encoding="ISO-8859-1" ?>
<rss version="0.91">
<channel>
  <title>Canal RSS</title>
  <link>http://miservidor.com</link>
  <description>Gu&#237;a para escribir documentos HTML</description>
  <language>es-ES</language>

<image>
  <title>Canal RSS</title>
  <url>http://miservidor.com/milogo.gif</url>
  <link>http://miservidor.com/</link>
  <width>128</width>
  <height>128</height>
</image>

<item>
  <title>Noticia 1</title>
  <link>http://miservidor.com/noticia1.htm</link>
  <pubDate>Wed, 10 Sep 2010 00:00:00 GMT</pubDate>
  <description> Descripci&#243;n de la noticia 1 </description>
</item>

<item>
  <title>Noticia 2</title>
  <link>http:/miservidor.com/contenidos.asp?nivel=18&amp;cont=567</link>
  <pubDate>Tue, 21 Sep 2010 00:00:00 +0200</pubDate>
  <description> Emoci&#243;n en el Bol d&:#39;Or </description>
</item>

</channel>
</rss>

Los ficheros RSS suelen crearse con la extensión .xml pero también funcionan con .rss o .rdf

La parte inicial del fichero será siempre igual; lo que cambiará serán los elementos <item>, que son los que muestran las nuevas noticias que aparezcan. Por supuesto, se pueden añadir cuantos sean nacesarios, y conviene planificar la antigüedad de las noticias que se mostrarán, eliminando los que proceda. Conviene prestar especial atención al borrado de los items que apunten a noticias que ya han caducado, y que tal vez, ya no estén disponibles en el servidor.

No hay que confundir la versión de lenguaje xml (1.0) con la de RSS (0.91). Hasta ahora han aparecido cuatro versiones de RSS: 0.91, 0.92, 1.0 y 2.0. La diferencia entre ellas simplemente consiste en que se le han ido añadiendo etiquetas nuevas al lenguaje, y no está muy claro que algunas de ellas sirvan para algo. Como siempre, todo va a depender del cliente utilizado, pero el funcionamiento básico es el mismo. La estricta sintaxis xml debe respetarse en todas ellas.

Cuando se escriben ficheros xml, hay que tener en cuenta que no se pueden poner letras con acentos, comillas, &, apóstrofes, eñes, los signos < y >, y algunos otros. Todo esto deberá ir codificado como en html, pero no todo se puede codificar igual. Se puede utilizar &apos; &amp; &quot; &lt; &gt; pero no es válido &aacute;   Para no confundir cuales se pueden codificar como en html y cuales no, lo mejor es utilizar el formato numérico en todos ellos: &#225; = á     &#038; = &      
En esta guía tienes la tabla con los códigos de los caracteres.

Otra cosa que hay que controlar para evitar problemas de validación es el formato de las fechas para la etiqueta <pubDate> que tiene que ser el definido en la norma RFC 822, como puedes ver en el ejemplo.


[Indice]