RSS (Really Simple Sindication)

Jorge Pérez


RSS 2.0

RSS es un formato web de sindicación. Su nombre es un acrónimo para Really Simple Sindication. RSS es un dialecto de XML. Todos los archivos RSS deben adaptarse a la especificación XML 1.0, como se publica en sitio web World Wide Web Consortium (W3C). Es  un excelente medio para publicar noticias como es el caso de SlashDot  que es una comunidad orientada a noticias. Pero RSS no sirve solamente para noticias. Cualquier información que sea susceptible de dividirse en secciones puede publicarse vía RSS.

La siguiente información se extracto y tradujo de la página de especificaciones de Technology at Harvard Law, autores de RSS 2.0 y se complementó con comentarios del autor y un ejemplo en vivo de un archivo XML generado desde un procedimiento escrito en VFP.

En el nivel superior, de un documento RSS se encuentra un elemento <rss>, con un atributo obligatorio llamado version que especifica la versión del documento. Para nuestro caso, nos ocupamos de la versión 2.0, por lo que este atributo debe ser "2.0". De modo que las dos primeras líneas de nuestro documento, deben ser las siguientes:

<?xml version="1.0" encoding="iso-8859-1" ?>
<rss version="2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

Subordinado al elemento <rss> se encuentra un único elemento <channel> que contiene la información sobre el canal (metadata) y su contenido. Y dentro de este los sub-elementos separados dentro de elementos <item>.  Los siguientes elementos son obligatorios en un documento RSS:

  • title: el nombre del canal. Es la forma en que la gente se refiere a su servicio. Si usted tiene un sitio web HTML que contiene la misma información que su archivo RSS, el título de su canal debe ser el mismo de su sitio web. Ejemplo: Vfpnetwork.Com Programación Web
  •  link: El URL al sitio web HTML correspondiente al canal. Ejemplo: http://www.vfpnetwork.com
  • description: descripción del canal. Ejemplo: Comunidad de programadores Visual FoxPro

Elementos opcionales de channel:

  • language: El lenguaje en el que el canal está escrito. Esto permite a los agregadores agrupar todos los mensajes de un determinado lenguaje en una sola página. Una lista de valores permitidos para este elemento suministrados por NetScape puede encontrarse aquí. También puede utilizar los valores definidos por W3C. Ejemplo: en-us.
  • copyright: Copyright del canal. Ejemplo: Copyright 2004, VfpNetwork.Com
  • managingEditor: Dirección de correo electrónico de la persona responsable del contenido editorial.
  • webMaster: Dirección de correo electrónico de la persona responsable de aspectos técnicos del canal.
  • pubDate: La fecha de publicación. Si su publicación es diaria, la publicación cambia de día cada 24 horas. Es entonces cuando el elemento pubDate del canal cambia. Todas las fechas-horas en RSS se adaptan a a la especificación de fecha y hora de RFC 822, con la excepción de que el año puede expresarse con dos o cuatro caracteres (preferiblemente con cuatro).
  • category: Especifica una o más categorías a las que el canal pertenece. Sigue las mismas normas del elemento <item>. Ejemplo: <category>Programación VFP</category>.
  • generator: Una cadena de caracteres indicando el programa utilizado para generar el canal.
  • docs: Un URL que apunte a la documentación del formato utilizado en el archivo RSS. Posiblemente a http://blogs.law.harvard.edu/tech/rss. Esto se hace pensando que dentro de unos años una persona que se encuentra con uno de estos documentos sepa que es.
  • cloud: Le permite a procesos registrarse con un cloud para ser notificado de actualizaciones en el canal.
  • ttl: (Time To Live) es un número de minutos que indica cuanto tiempo puede permanecer un canal en cache antes de realizar un refresco en la fuente.
  • image: especifica una imagen GIF, JPEG o PNG que puede mostrarse con el canal.
  • rating: El rating PICS para el canal.
  • textInput: Especifica un cuadro de diálogo que puede ser mostrado con el canal.
  • skipHours: Una guía para los agregadores informándoles que horas pueden evitar.
  • skipDays: Una guía para los agregadores indicándoles que días pueden evitar.

Elementos de item:

Un canal puede contener cualquier número de <item>s. Un item representa una "historia" -- tal como una historia en un periódico o en una revista; de ser así su descripción es una sinopsis de la historia y su vínculo apunta a la historia completa. un item puede ser completo en si mismo. De ser así la descripción contiene el texto (se permite HTML entidad-codificado). Vea algunos ejemplos al final de la descripción de los elementos de <item>

  • title: El título del item.
  • link: URL del item.
  • description: Sinopsis del item.
  • author: Dirección de correo electrónico del autor del item.
  • category: Incluye el item en una o más categorías. Ejemplo: VFP AFP Programación
  • comments: URL de una página de comentarios concernientes al item.
  • enclosure: Describe un objeto que hace parte del item. Ejemplo:
    <enclosure url="http://.../archivo.mp3" length="256000" type="audio/mpeg" />
    guid: Una cadena de caracteres que identifica de forma única al item.
  • pubDate: indica la fecha en que se publico el item.
  • source: El canal RSS de donde provino el item.

- Codificando tags de HTML:

<description>Esto es&lt;b&gt;NEGRILLA&lt;/b&gt;</description>

Resultado: Esto es NEGRILLA

- Codificando HTML dentro de una sección CDATA:

<description><![CDATA[esto es<b>NEGRILLA</b>]]></description>

Resultado: Esto es NEGRILLA

Los anteriores ejemplos fueron suministrados por Nick Bradbury de Bradbury Software. Indudablemente el segundo ejemplo es mucho más claro, el contenido se escribe como cualquier documento HTML.

RSS se está convirtiendo en algo que "debe tenerse" en sitios web, permite otra forma clara y sencilla de exponer contenido dinámico para cualquier usuario que cuente en su computadora con un lector de noticias RSS. Los lectores de noticias se han vuelto muy populares en la comunidad web, hay cientos de ellos disponibles. RssReader es uno de ellos y es gratuito.

Qué aspecto tiene RSS? El siguiente código corresponde al código generado desde un registro seleccionado de la tabla de mensajes del sitio.

<?xml version="1.0" encoding="iso-8859-1" ?>
<rss version="2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<channel>
<title>Foro de Mensajes de VfpNetwork.Com</title>
<link>http://www.vfpnetwork.com</link>
<description>Ejemplo de RSS</description>
<generator>Generado con VFP</generator>
<item>
<title>Nueva versión de AFP3</title>
<link>http://wwww.vfpnetwork.com</link>
<description>
Prolib acaba de hacer pública la versión 3.0.538 de AFP3. Es impresionante le mejora
en el tiempo de respuesta. Inclusive en un sitio de bajo tráfico estas mejoras pueden
apreciarse claramente, ya que la nueva versión minimiza el consumo de recursos del
servidor y refresca permanentemente los hilos en ejecución.
Cuando el tráfico disminuye, AFP puede reducir el número de hilos a 1 pero puede reaccionar
instantáneamente ante la llegada de un grupo grande de usuario, suministrando nuevos
hilos para atender la demanda.
Actualmente instalamos esta versión en el servidor de uno de nuestros clientes que en
horas de alto tráfico puede estar atendiendo unos 200 visitantes simultáneamente.
Hay algunas nuevas características en el ControlCenter. Pueden encontrar más información
en el archivo Release.Txt del directorio de AFP.
Cordial saludo,
Jorge Pérez
</description>
<author>Jorge Pérez</author>
<category>WebSite</category>
<comments />
<enclosure />
<guid>AFP3</guid>
<pubdate>2004/08/14 20:20:51</pubdate>
<source />
</item>
</channel>
</rss>

Si observa en su navegador el archivo, podrá ver claramente la estructura que utiliza RSS. Si no tiene un lector de noticias, instale RssReader (o el de su gusto)  y agregue el documento a su lector (http://www.vfpnetwork.com/xml/mensajes.xml). De esta forma, podrá observar los resultados.

Como podrá ver, esta es una solución de fácil implementación y es una alternativa a la utilización de Web Services, puede utilizar desde un editor de texto hasta automatizar la generación como se ha hecho en este caso y simplemente copiar el archivo en su sitio web donde desde una página HTML el usuario podrá tener una guía de los documentos disponibles y visualizarlos desde cualquier lector RSS.

Cordial saludo,

Jorge Pérez
Vfpnetwork.Com

 

Copyleft: GNU Free Documentation License.