Tema 3.2.2: RSS / ATOM - tic.udc.esfbellas/teaching/adoo-2006-2007/Tema3Apart... · Woody Allen...

22
Tema 3.2.2: RSS / ATOM

Transcript of Tema 3.2.2: RSS / ATOM - tic.udc.esfbellas/teaching/adoo-2006-2007/Tema3Apart... · Woody Allen...

Tema 3.2.2: RSS / ATOM

Introducción (1)

RSS / ATOM: Familias de formatos XML utilizados habitualmente para sindicación de contenidos (“webfeeds”):

Blogs, Noticias,…

“Web feed”:Usuario se subscribe a los “feeds” que le interesan (e.g. un blog, un periódico on-line,…).Puede utilizar un programa lector de “feeds” para ver todos los nuevos contenidos, sin necesidad de ir a cada sitio web.Para cada nuevo contenido, normalmente se muestra cierta información básica (título, resumen,…) y un enlace a la información completa en la fuente original.Los principales navegadores incluyen ya un lector de feeds.

Introducción (2)

El nombre RSS puede referirse a varios estándares, no siempre compatibles entre sí:

Really Simple Syndication (RSS 2.0).Rich Site Summary (RSS 0.91, RSS 1.0).RDF Site Summary (RSS 0.9, RSS 1.0).

Inicialmente creado por Netscape, fue abandonado y extendido de forma independiente por dos grupos.Como consecuencia hay dos ramas de compatibilidaden RSS:

RSS 0.9, RSS 1.0, RSS 1.1.RSS 0.91, RSS 0.92, RSS 2.0

Los más utilizados son RSS 1.0 y RSS 2.0.La rama “2.0” es más simple, ya que no usa RDF.La mayoría de lectores soportan ambas ramas.

Introducción (3)

ATOM surge debido a los problemas de compatibilidad entre versiones y a algunaslimitaciones adicionales de RSS.ATOM Syndication: Estándar de la IETF (Internet Engineering Task Force) publicado en RFC 4287.Los principales lectores de “feeds” también soportanAtom.Muchos productores de feeds soportan ambos formatos (RSS, Atom), aunque otros sólo uno de ellos.Sobre todo en artículos no técnicos, es habitual encontrar el término “RSS” referido a cualquierformato de sindicación: tanto a RSS como a Atom.

Introducción (y 4)

Los servicios que proporcionan feeds ATOM / RSS son servicios web REST:

Los contenidos se acceden a través de HTTP y se devuelven en XML.Las “entidades” (canales e items) se pueden representar mediante URIs únicos (idea más fuerte en ATOM).Es un ejemplo de integración a través de la implantación de un vocabulario estándar en lugar de un API estándar.Su éxito ha sido espectacular.

Es importante resaltar que es un formato dedicadoexclusivamente a representar contenidos y no cualquier tipo de información estructurada.

Se usa un “esquema” fijo.

Información en RSS 2.0 (1)<?xml version="1.0" encoding="UTF-8" ?>

<rss version="2.0">

<channel><title> Información de películas en la UDC</title><link>http://ws.udc.es/movies</link><description> Este sitio ofrece información completa sobre

películas estrenadas recientemente.</description><language>es-ES</language><pubDate>Mon, 19 Mar 2007 04:00:00 GMT</pubDate><lastBuildDate>Mon, 19 Mar 2007 13:54:26 GMT</lastBuildDate><managingEditor>[email protected]</managingEditor><webMaster>[email protected]</webMaster><ttl>60</ttl>

Información en RSS 2.0 (2)<item>

<title> La maldición del escorpión de Jade </title><link>http://ws.udc.es/movies/maldicion_escorpion_jade.html</link><description>Comedia. 103 minutos. Estrenada el 19/10/2001

Dirigida por Woody Allen. Con Woody Allen, Helen Hunt, Dan Aykroyd, Elzabeth Berkley, Charlize Theron. Woody Allen encarna a CW Briggs, el rey de los investigadores de seguros de Nueva York en 1940 --o cuanto menos eso es lo que no cesa de decirle a la nueva experta en eficiencia de la empresa, Betty Ann Fitzgerald (Helen Hunt)--. Briggs hace alarde de ser capaz de arruinar cualquier treta de seguros penetrando en la mente del malhechor, pero ahora, debido a los poderes hipnóticos del "Escorpión de Jade", es la mente de un malhechor la que penetra en Briggs

</description><category>Comedy</category><pubDate>Mon, 19 Mar 2007 04:00:00 GMT</pubDate> <guid>http://ws.udc.es/movies/maldicion_escorpion_jade.html</guid>

</item>

Información en RSS 2.0 (y 3)

<item><title>Amelie</title><link> http://ws.udc.es/movies/amelie.html </link><description> Comedia romántica. 120 min. Estrenada el

19/10/2001. Dirigida por Jean-Pierre Jeunet. Con Audrey Tautou, Mathieu Kassovitz, Rufus, Yolande Moreau, Artus de Penguern, Dominique Pinon. Amelie no es una chica como las demás. Ha visto a su pez de colores deslizarse hacia las alcantarillas ...

</description><category>Comedy</category><category>Romantic</category><guid>http://ws.udc.es/movies/amelie.html</guid><pubDate>Mon, 19 Mar 2007 13:54:26 </pubDate>

</item></channel>

</rss>

Formato RSS 2.0 (1)

Es un documento XML.Declaración RSS: <rss version=“2.0”>

Un único elemento channel con información acerca del canal y sus contenidos.Un canal puede contener cualquier número de elementos item. Cada item representa un elemento de información del canal (noticia, entrada en el blog,…).Subelementos obligatorios del canal:

title. El nombre del canal.link. La URL al sitio web HTML que se corresponde con el canal.description. Descripción corta del canal.

Formato RSS 2.0 (2)

Subelementos opcionales del canal:language. Lenguaje del canal. Valores definidos por el W3C (http://www.w3.org/TR/REC-html40/struct/dirlang.html#langcodes)pubDate. La fecha de publicación del grueso del contenido del canal. Por ejemplo, si un site renueva el grueso de su contenido diariamente, este valor variará una vez al día.

Formato de fecha: RFC 822 lastBuildDate. La última vez que cambió el contenido del canal.managingEditor. E-mail del responsable de los contenidos.webMaster. E-mail del responsable técnico del sitio web.ttl. Indica cuantos minutos un canal puede ser cacheado.

Formato RSS 2.0 (3)

Subelementos opcionales del canal (cont):copyright. Información de copyright de los contenidos.generator. Programa utilizado para generar el canal. cloud. Mecanismo simple publish-subscribe. image. Especifica una imagen o logo del canal.rating. Rating PICS (http://www.w3.org/PICS/). skipHours, skipDays. Información para agregadoressobre qué horas y días no se actualiza contenido.Otros: docs, textInput.

Formato RSS 2.0 (y 4)

Subelementos de item:Todos son opcionales pero debe aparecer al menos uno de los dos siguientes: title o description.title. Título del item.link. La URL al contenido HTML completo del item.category. Incluye el item en una o más categorías de una taxonomía.pubDate. Indica cuando se publicó el item.guid. Identificador único del item (permalink). Puede coincidir o no con el link.author. E-mail del autor del item. comments. URL de página con comentarios sobre el item.enclosure. Objeto multimedia asociado al item.source. Feed de origen del item.

Información en ATOM (1)<?xml version="1.0" encoding="ISO-8859-1"?>

<feed xmlns="http://www.w3.org/2005/Atom">

<title>Información de películas en la UDC</title> <subtitle> Este sitio ofrece información completa sobre películas estrenadas recientemente</subtitle><link href="http://ws.udc.es/movies"/><updated>2006-03-19T13:54:26Z</updated><author>

<name>Fernando Bellas</name></author> <author>

<name>Alberto Pan</name></author>

Información en ATOM (2)<entry>

<title>La maldición del escorpión de Jade </title><link

href="http://ws.udc.es/movies/maldicion_escorpion_jade.html"/><id> http://ws.udc.es/movies/maldicion_escorpion_jade.html</id><updated>2006-03-19T04:00:00Z</updated><summary>Woody Allen encarna a CW Briggs, el rey de los

investigadores de seguros de Nueva York en 1940 --o cuanto menos eso es lo que no cesa de decirle a la nueva experta en eficiencia de la empresa, Betty Ann Fitzgerald (Helen Hunt)--. Briggs hace alarde de ser capaz de arruinar cualquier treta de seguros penetrando en la mente del malhechor, pero ahora, debido a los poderes hipnoticos del "Escorpion de Jade", es la mente de un malhechor la que penetra en Briggs

</summary><content>Comedia. 103 minutos. Estrenada el 19/10/2001

Dirigida por Woody Allen. Con Woody Allen, Helen Hunt, Dan Aykroyd, Elzabeth Berkley, Charlize Theron. Woody Allen encarna a CW Briggs, el rey de los investigadores de seguros de Nueva York en 1940 --o cuanto menos eso es lo que no cesa de decirle a la nueva experta en eficiencia de la empresa, Betty Ann Fitzgerald (Helen Hunt)--. Briggs hace alarde de ser capaz de arruinar cualquier treta de seguros penetrando en la mente del malhechor, pero ahora, debido a los poderes hipnoticos del "Escorpion de Jade", es la mente de un malhechor la que penetra en Briggs

</content><category> Comedia </category>

</entry>

Información en ATOM (y 3)

<entry>

<title>Amelie</title><link href="http://ws.udc.es/movies/amelie.html"/><id> http://ws.udc.es/movies/amelie.html </id><updated>2006-03-19T13:54:26Z</updated><summary>Amelie no es una chica como las demás. Ha visto a su

pez de colores deslizarse hacia las alcantarillas ...</summary><content>Comedia romántica. 120 min. Estrenada el 19/10/2001.

Dirigida por Jean-Pierre Jeunet. Con Audrey Tautou, MathieuKassovitz, Rufus, Yolande Moreau, Artus de Penguern, DominiquePinon. Amelie no es una chica como las demás. Ha visto a su pez de colores deslizarse hacia las alcantarillas ...

</content><category> Comedia </category><category> Romántica </category>

</entry></feed>

Formato Documentos Atom (1)

Más complejo que RSS. No haremos una descripción exhaustiva.Es un documento XML. Utiliza el espacio de nombres http://www.w3.org/2005/Atom

El elemento feed es similar al channel RSS.El elemento entry es similar al item RSS.Subelementos obligatorios de feed:

title. Nombre del canal.author. Autor (pueden ser varios). Puede especificar el nombre y el e-mail. Si todos los entry tienen su propio author, no es necesario.updated. Fecha última modificación (formato RFC 3339).

Formato Documentos Atom (2)

Otros subelementos:subtitle. Breve descripción.rights, category, generator, icon, logo, id, contributor...

Subelementos de entry:id. Identificador único de la entrada. Debe seguir el formato IRI (Internationalized Resource Identifier: RFC 3987)

Las IRIs “internacionalizan” las URIs permitiendo más caracteres..Toda URI es una IRI.

title. Título de la entrada.updated. Fecha de última modificación de la entrada.author. Autor de la entrada. Puede especificar nombre y e-mail. Si se especifica en el feed no es necesario. summary. Resumen textual del contenido de la entrada.

Formato Documentos Atom (y 3)

Subelementos opcionales de entry:content. Contenido completo de la entrada. No tiene porque ser textual, sino que puede especificar explícitamente su tipo (puede ser HTML, XHTML o binario). Puede especificarse el lenguaje.category. Categorías a las que se asocia la entrada.source, published,…

ATOM vs RSS

RSS no especifica explícitamente el tipo de contenido mientras que ATOM sí.

RSS normalmente lleva texto o HTML, pero es necesario aplicar heurísticas para detectarlo. En ATOM puede ser también XHTML o binario.

ATOM separa el resumen del contenido completo.ATOM utiliza mecanismos estándar XML para manejar distintos lenguajes.ATOM utiliza un formato de fechas diferente.ATOM utiliza IRIs.En ATOM es obligatorio que cada entrada tenga un identificador único.ATOM soporta firma digital utilizando el estándar W3C llamado XML Digital Signature.ATOM tiene un esquema XML.

Generación y Parsing RSS /ATOM

Tanto RSS como ATOM pueden ser generados fácilmente desde cualquier aplicación web.Cualquier parser XML puede ser utilizado para deserializar estos formatos en objetos.

E.g. JDOM.

Existen algunos parsers específicos para los principales lenguajes. En JAVA:

ROME (http://wiki.java.net/bin/view/Javawsxml/Rome).EDDIE (http://www.davidpashley.com/projects/eddie.html).

Soportan la generación y parsing de los principales formatos e incluso la traducción desde un formato a otro.

XSLT (1)

XSLT (eXtensible Stylesheet LanguageTransformations) es un lenguaje para convertir un documento XML en otro sin modificar el original.Estándar W3C (http://www.w3.org/TR/xslt)Puede ser utilizado para generar HTML partiendo de XML.

La idea básica es asociar un markup a cada elemento del XML. Según se va parseando el XML, se va generando el HTML asociado.

Ejemplo:Una aplicación podría recuperar directamente los datos de las películas en XML o RSS y aplicar directamente una transformación XSLT para generar un documento HTML que mostrar al usuario.

XSLT: Ejemplo (de Wikipedia)1) XML original

<?xml version="1.0" ?> <persons>

<person username="JS1"> <name>John</name> <fam_name>Smith</fam_name>

</person> <person username="MI1">

<name>Nancy</name> <fam_name>Davolio</fam_name>

</person></persons>

3) XHTML obtenido

<?xml version="1.0" encoding="UTF-8"?><htmlxmlns="http://www.w3.org/1999/xhtml">

<head> <title>xsl wiki ex.</title>

</head><body>

<h1>Persons</h1><ul>

<li>Davolio, Nancy</li><li>Smith, John</li>

</ul></body></html>

2) Transformación XSLT

<?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet

xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"><xsl:template match="/persons">

<html xmlns="http://www.w3.org/1999/xhtml"><head> <title>xsl wiki ex.</title> </head> <body>

<h1>Persons</h1> <ul> <xsl:apply-templates select="person">

<xsl:sort select="fam_name" /> </xsl:apply-templates>

</ul></body></html>

</xsl:template>

<xsl:template match="person"> <li>

<xsl:value-of select="fam_name"/>,<xsl:value-of select="name"/>

</li> </xsl:template>

</xsl:stylesheet>