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

Scriviamo un feed RSS a mano

Creiamo da zero e con un semplice editor di testo un feed RSS, mantenendo il controllo totale su tutti gli aspetti. Immergiamoci nel mondo degli RSS ed esploriamo la loro struttura, i tag principali e come realizzare un breve feed.

di Nicola D’Agostino

I feed RSS sono ormai una caratteristica presente in quasi tutti i blog e i CMS, i sistemi automatici di gestione dei contenuti, che fornisce una versione senza fronzoli delle ultime notizie o articoli pubblicati. Come idea gli RSS richiamano alla lontana le notizie flash o le news "in pillole" ma rispetto a queste più leggibili, modulari e possono essere usate e riusate a piacimento, venendo filtrati o accorpati ad altre fonti. Gli RSS sono in genere creati automaticamente nei blog e nei CMS ma c’è anche chi non usa questi strumenti e magari cura il proprio sito web "a mano" ed altrettanto a mano vorrebbe creare e distribuire un proprio feed.

Ma cosa sono in realtà gli RSS?

A seconda delle campane RSS sta per "Real Simple Syndication" o "RDF Site Summary". La sostanza però non cambia: si tratta di applicazioni XML. Sono quindi documenti testuali standard, leggeri e relativamente facili da creare, interpretare, modificare con un qualsiasi editor di testo.

Purtroppo come ci sono varie versioni dell’HTML così esistono anche vari RSS, che convivono e vengono usati contemporaneamente. L’RSS che è stato sviluppato originariamente da Netscape nel 1999 per il proprio portale My Netscape ed è nato come RSS 0.90. A questa versione, ritenuta troppo complessa, ne è seguita una più semplice, la 0.91, il cui sviluppo è stato continuato da UserLand Software, produttore di strumenti per lo scripting e per i blog, che ne ha firmato varie revisioni, fino all’ultima, la 0.94. Parallelamente e in maniera indipendente è nato e si è sviluppato l’RSS1.0 che usa estensioni dell’XML e tra le novità incorpora uno standard web per i metadati, l’RDF (da viene cui uno dei due acronimi per RSS). Un altro vantaggio dell’RSS 1.0 è che lo sviluppo è curato da un gruppo di lavoro e non da una software house. Come se non bastasse, in risposta all’1.0 (ed a un altro formato, Atom) è nato un ulteriore RSS, il 2.0, sempre a firma di UserLand e ideale erede del 0.9X.

Schema delle versioni di RSS, dei creatori e delle caratteristiche salienti

Quale usare?

Al momento in cui scriviamo vengono usati contemporaneamente sia il ramo 0.9X, sia quello 1.0 RDF che il 2.0.
Un bel caos? Nemmeno tanto, visto che i formati hanno molto in comune.
Per motivi di spazio ne vedremo solo due, e cioé il 0.9X ed il suo "fratello maggiore" 2.0, riservandoci in futuro una trattazione dell’1.0/RDF, più complesso e prolisso.

Ecco dunque un esempio di RSS 0.91:

<?xml version="1.0"?>
<rss version="0.91">
  <channel>
    <title>Nome del feed RSS</title>
    <link>http://www.abc.xyz</link>
    <description>Il mio feed</description>
    	<item>
       	<title>Notizia 01</title>
       	<link>http://www.abc.xyz/notizia01/</link>
       	<description>Fatti odierni</description>
    	</item>
  </channel>
</rss> 

Nell’ordine abbiamo la dichiarazione (gli si prepone la riga <?xml version="1.0"?> per dichiarare che si tratta di un file XML): il feed è racchiuso nei tag <channel> e </channel> ed è presente un titolo, un link e una descrizione generali (quelli del feed e del sito o autore che li produce) e volendo si possono aggiungere altri tag per la lingua (<language>en-us</language>) o per note di copyright (<copyright>(C) 2005, Io medesimo.</copyright>). All’interno, ogni notizia è racchiusa corrisponde ad un "item", (racchiusa tra <item> e <item>) e anche qui abbiamo un campo per il titolo uno per il link al testo completo e uno per la descrizione o breve testo.
Per aggiungere altre notizie basta duplicare il blocco item e cambiare i campi.

Ed ecco invece un RSS 2.0:

<rss version="2.0" 
xmlns:dc="http://purl.org/dc/elements/1.1/">
 <channel>
   <title>Nome del feed RSS</title>
   <link>http://www.abc.xyz</link>
    <description>Il mio feed</description>
    <language>en-us</language>
    <copyright>(C) 2005, Io</copyright>
      <item>
         <title>Notizia 01</title>
         <link>http://www.abc.xyz/</link>
         <description>Fatti odierni</description>
         <dc:creator>Nome dell'autore</dc:creator>
         <dc:date>19/05/2005</dc:date>
    </item>
 </channel>
</rss>

Praticamente uguale all’RSS 0.9X ma con solo qualche (utile) campo in più (quelli per l’autore e la data).

Pubblichiamo il feed RSS.

Una volta scelto il formato e inserito qualche <item> per rendere disponibile e integrare il nostro feed RSS nel sito web bastano due passi. Il primo è salvare il file come solo testo e con estensione .xml -oppure .rss- e metterlo online sul server. Il secondo passo è offrire il feed a chi visita le pagine, con un semplice link al file xml nel sorgente html, ad esempio:

  <a href="http://www.sitoweb.estensione/feed.xml">Feed RSS</a>

Per il browser

Per segnalare infine a chi visita il nostro siti web in maniera più sofisticata l’esistenza del feed possiamo sfruttare le funzioni di alcuni browser recenti come Mozilla, Safari, Opera, Explorer. La segnalazione del feed RSS al programma si fa inserendo del codice verso l’inizio del file html, tra i tag <head> e </head> (in genere dopo il <title> e <meta http>).
Ecco un esempio:

<link rel="alternate" type="application/rss+xml" href="http://www.abc.xyz/nomefeed.xml" title="feed RSS"> 

Controlliamo il codice del feed RSS

Tra i servizi offerti su Internet c’è anche la possibilità di "validare" l’RSS, e cioé verificare la correttezza dei tag XML alla base del nostro feed.
Multiuso e aggiornato alle ultime specifiche è http://feedvalidator.org/ mentre limitato agli RSS 0.9X c’è anche lo spartano http://rss.scripting.com/.

Una versione di questo articolo è stata pubblicata su "Hacker Journal" n. 77 del 09/06/2005