Nicola D'Agostino (.net) - Articoli, traduzioni, grafica, web

Scriviamo un feed RSS a mano (seconda parte)

Tuffiamoci ancora una volta nel mondo degli RSS: spazio questa volta al formato RSS 1.0. Più potente e versatile ma anche più complesso.

di Nicola D’Agostino

Dopo aver visto come sono fatti i file RSS 0.9 e 2.0, strettamente imparentati come sintassi, vediamo ora il loro concorrente, 1.0. E’ un formato il formato aperto e indipendente che ha il sostegno del W3C, il consorzio per gli standard del web.
La differenza principale con gli altri è l’incorporazione di elementi RDF (Resource Description Framework) che permettono più flessibilità e estensibilità per esigenze future. Questo però può accadere a prezzo di una maggiore complessità del file XML, potenzialmente più ricco di dettagli informativi e di conseguenza lievemente più difficile da gestire per chi volesse scriverlo a mano in un semplice editor di testo.

Come è fatto il feed

Ma vediamo l’RSS 1.0 in pratica. Ecco un feed minimale:


<rdf:RDF xmlns="http://purl.org/rss/1.0/"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/">

<item rdf:about="http://www.abc.xyz/indirizzoarticolo">

<title>Notizia 01</title>
<link>http://www.abc.xyz/indirizzoarticolo</link>
<description>Cose successe oggi</description>

<dc:title>Cose successe oggi</dc:title>
<dc:creator>io</dc:creator>
<dc:date>23:08:2005</dc:date>
</item>

</rdf:RDF>

Rispetto all’RSS 2 non ci sono enormi differenze. Abbiamo delle dichiarazioni un po’ più verbose. In alcuni casi abbiamo rdf invece che rss e sopratutto all’inizio si espandono le coordinate ai riferimenti. Dopo xmlns: rdf possiamo avere anche più dichiarazioni “xmlns” (che sta per XML NameSpace). In questo caso ne abbiamo solo una, “dc” relativa al modulo Dublin Core usato per i metadati descrittivi, che troviamo poco dopo lo spazio per l’item, identico all’RSS 0.9 e 2.0 se non per una ulteriore specifica dell’url.

Qualcosa di più ambizioso

Vediamo invece un feed RSS 1.0 leggermente più complesso, preso da una pagina reale e generato dalla piattaforma Simple PHP Blog. Per motivi di spazio ho eliminato i contenuti:


<?xml version="1.0" encoding="ISO-8859-1"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:ref="http://purl.org/rss/1.0/modules/reference/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns="http://purl.org/rss/1.0/">

<channel rdf:about="https://www.nicoladagostino.net/extra//rss.rdf">
<title>NicolaD'Agostino.net : extra</title>
<link>https://www.nicoladagostino.net/extra/index.php</link>
<description><![CDATA[Inutile ma immancabile nota in calce]]></description>
<image rdf:resource="https://www.nicoladagostino.net/extra/interface/feed.png" /> <items>
<rdf:Seq>
<rdf:li resource="https://www.nicoladagostino.net/extra/?entry=entry050504-050148" />
<rdf:li resource="https://www.nicoladagostino.net/extra/?entry=entry050504-050006" />
</rdf:Seq>
</items>
</channel>

<item rdf:about="https://www.nicoladagostino.net/extra/?entry=entry050504-050148">
<title>OpenDocument, il formato anti-Microsoft Office</title>
<link>https://www.nicoladagostino.net/extra/index.php?entry=entry050504-050148</link>
<description>Il gruppo OASIS ha annunciato di aver approvato come standard la<a href="http://lists.oasis-open.org/archives/tc-announce/200504/msg00006.html">terza bozza del formato Open Document v1.0</a><br>
</description>
</item>

<item rdf:about="https://www.nicoladagostino.net/extra/?entry=entry050504-050006">
<title>Dischi VMD HD: tecnologia di transizione o insuccesso annunciato?</title>
<link>https://www.nicoladagostino.net/extra/index.php?entry=entry050504-050006</link>
<description>I VMD (Versatile MultiLayer Disc),sono la prossima generazione HD Disc e drive con una capienza di 20GB e sono basati sulla attuale tecnologia red laser.<br>
</description>
</item>

</rdf:RDF>

Dopo la prima riga che dichiara il formato XML e la codificala codifica questa volta abbiamo parecchi tag xmls nella testata. La cosa più interessante è però l’uso più esteso e strumentale degli rdf per comunicare varie informazioni qui e lì. Ad esempio nella parte <channel> (già vista in RSS 0.9 e 2) li si usa per segnalare l’url del feed e più avanti per il logo in PNG del feed. Più strumentale è la sezione che comincia con <rdf:Seq> in cui si fornisce una sorta di sommario degli item con gli url delle singole entry nella versione web, url richiamati nei singoli <item>. Uno strumento dalle notevoli potenzialità e dai tanti possibili impieghi, in pieno stile XML, insomma. Un buon punto di partenza per chi vuole approfondire le regole è web.resource.org/rss/1.0/

Prima di pubblicare

Una volta preparato il file consigliamo di salvarlo e mettere online con l’estensione usata per l’RSS 1.0, che è in genere .rdf.
Per controllare la correttezza della sintassi (non si sa mai) il validatore di riferimento è quello fornito dal W3C che troviamo all’url www.w3.org/RDF/Validator/ oppure, in alternativa, il servizio multiformato http://feedvalidator.org/

Il sito del W3C per controllare il codice xml di un feed RSS 1.0

Un settore (un po’ troppo) affollato

Il panorama dei feed XML è in fermento, ma non solo perché si tratta di una tecnologia emergente. Il problema è un panorama caotico e dispersivo con tante versioni in concorrenza tra di loro, ed altre in arrivo. Oltre ai formati RSS 0.9, 1 e 2 di recente è approdato il nuovissimo RSS 3 che punta a “fare le scarpe” ad alcuni dei predecessori. Un altro incomodo è l’ormai diffuso formato Atom e infine abbiamo l’adozione in corso dell’RSS da Microsoft. Questa lo incorporerà sia in Explorer che in Windows, ma pare intenda aggiungere modifiche proprietarie creando un ulteriore formato con cui fare i conti…

Una versione di questo articolo è stata (presumibilmente) pubblicata su "Hacker Journal" nel settembre 2005