back to top

Il formato RSS: cos’è e come funziona

Il formato RSS (Really Simple Syndication) è uno standard XML molto popolare e utilizzato per lo scambio di notizie, aggiornamenti o dati in generale via Web. La sua struttura non presenta differenze sostanziali rispetto a un normale formato XML, se non per il fatto che, essendo uno standard, utilizza dei tag predefiniti. Questa caratteristica lo rende particolarmente utile per i siti che desiderano offrire ai propri utenti un modo semplice per restare aggiornati sui contenuti pubblicati.

Un semplice esempio di file RSS

Come già detto, l’utilizzo principale del formato RSS è quello dello scambio dati via Web. Ad esempio, creiamo una struttura capace di essere utilizzata per lo scambio delle ultime News pubblicate su un sito. Questo renderà i contenuti disponibili in formato XML (seguendo le specifiche RSS) a coloro che desiderano integrarli nelle proprie pagine.

Pubblicità
<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Mr.Webmaster</title>
    <link>http://www.mrwebmaster.it</link>
    <description>Il portale dei Webmaster italiani</description>
    <dc:language>IT-it</dc:language>
    <item>
      <title>Il formato RSS</title>
      <link>http://www.mrwebmaster.it/tutorial/xml/tutorial447.htm</link>
      <pubDate>Mercoledì, 26 Ottobre 2005</pubDate>
      <description>Il formato RSS è uno standard XML...</description>
    </item>
  </channel>
</rss>

Subito dopo la dichiarazione della versione e della codifica utilizzata per il file XML, apriamo il tag <rss>, il quale specifica la versione e il Namespace utilizzato. A seguire, troviamo il tag <channel>, che, come il precedente, verrà chiuso solo alla fine del documento.

A questo punto entriamo nel vivo della gestione dei dati. I tag elencati di seguito servono a gestire i dati principali di riferimento al sito che mette a disposizione il proprio Feed:

  • <title>: indicativo del titolo del sito.
  • <link>: l’indirizzo della homepage del sito.
  • <description>: descrizione (sottotitolo) del sito.
  • <dc:language>: lingua utilizzata per il sito.

Successivamente, ci imbattiamo nel tag <item>, che rappresenta un singolo elemento all’interno del feed RSS, come un articolo o un aggiornamento. Questo contiene i seguenti tag:

  • <title>: titolo della news.
  • <link>: indirizzo specifico della news.
  • <pubDate>: data di pubblicazione della news.
  • <description>: breve descrizione della news.

Ulteriori articoli implementati con vari linguaggi spiegheranno in modo più approfondito come utilizzare questo formato per leggere e scrivere dinamicamente sia il formato XML in generale che il formato RSS.

Struttura di un file RSS 2.0

Esaminiamo in questa sede il formato RSS 2.0, che è la versione più utilizzata e supportata per i feed.

Esempio di codice XML in formato RSS 2.0

Prendiamo in considerazione la struttura appena indicata, semplifichiamola a livello di codice e vediamo ogni singolo tag e il loro scopo:

<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>MioSito.ext - Notizie online</title>
    <link>http://www.miosito.ext/news/</link>
    <description>Notizie al Web a cura di MioSito.ext</description>
    <language>it</language>
    <lastBuildDate>01/04/2008 13:06:54</lastBuildDate>
    <image>
      <url>http://www.miosito.ext/logo_news.gif</url>
      <title>MioSito.ext - Notizie online</title>
      <link>http://www.miosito.ext/news/</link>
    </image>
    <item>
      <title><![CDATA[Titolo della notizia]]></title>
      <link>http://www.miosito.ext/notizia.asp?id=123</link>
      <description><![CDATA[Breve descrizione...]]></description>
      <author>MioSito.ext</author>
      <pubDate>mar, 01 apr 2008 GMT</pubDate>
      <category domain="http://www.miosito.ext/categoria.asp?id=5">Nome Categoria</category>
      <guid isPermaLink="true">http://www.miosito.ext/notizia.asp?id=123</guid>
    </item>
  </channel>
</rss>

La struttura di base

Questa rappresenta una forma base del formato RSS 2.0, ma sono disponibili molti altri tag. Iniziamo esaminando quelli usati nella struttura di base.

La struttura di base include l’intestazione XML, il tag <rss> che contiene gli attributi nei quali vengono specificate le URL ufficiali dei suoi namespaces, e quindi il tag <channel> che contiene effettivamente tutti i dati del feed RSS.

L’elemento <channel> ha tre parti:

  • L’intestazione del sito che eroga il feed;
  • La gestione del logo del sito che eroga il feed;
  • Tutti gli item del feed, rappresentanti le singole notizie.

Nei paragrafi seguenti esamineremo tutti gli elementi, suddividendoli schematicamente tra obbligatori e opzionali.

L’elemento channel: elementi obbligatori

In virtù di quanto elencato nel paragrafo precedente, vediamo che l’elemento <channel> contiene tutto il feed RSS, quindi potrebbe sembrare inutile discutere di esso come di un elemento a sé stante.

Tuttavia, è essenziale chiarire gli elementi che devono essere specificati direttamente all’interno di <channel>, lasciando gli elementi obbligatori e opzionali per <image> e <item> a seguire.

Ecco un elenco dettagliato dei tag obbligatori dell’elemento <channel>:

  • <title>: specifica il titolo del sito;
  • <link>: specifica il link completo alla homepage del sito;
  • <description>: fornisce una breve descrizione del sito.

Utilizzo di CDATA all’interno di title e description

È importante gestire correttamente i caratteri speciali e altri aspetti potenzialmente problematici durante la creazione di un file XML valido. Tuttavia, in alcuni casi, specialmente nel campo delle notizie, potrebbero verificarsi eccezioni difficili da gestire, generando errori nel file XML e compromettendo la sua corretta interpretazione da parte degli script.

Per affrontare questo problema, è possibile utilizzare il costrutto CDATA. Dopo aver curato attentamente il file XML, il costrutto CDATA può gestire eccezioni non gestibili a livello di caratteri e potenziali piccoli errori, mantenendo l’integrità del file XML.

Nell’esempio di codice precedente, è mostrato come utilizzare il costrutto CDATA all’interno dei tag XML:

<title><![CDATA[Titolo della notizia]]></title>

L’elemento channel: elementi opzionali

Passiamo ora in rassegna gli elementi opzionali per l’elemento <channel>. È importante notare che, se uno script standard che recupera un feed RSS non trova determinati tag XML, potrebbe generare errori o non visualizzare correttamente l’output.

Considerando la struttura standard dell’esempio di codice precedente, che include solo alcuni degli elementi opzionali, esamineremo di seguito gli elementi opzionali disponibili:

  • <category>: specifica il nome della categoria di notizie del sito che fornisce il feed;
  • <cloud>: permette la registrazione di processi con un cloud, ad esempio di tipo SOAP;
  • <copyright>: specifica informazioni sul copyright del feed RSS;
  • <docs>: specifica l’URL della documentazione ufficiale del formato RSS;
  • <generator>: specifica il nome del software utilizzato per la generazione dell’RSS;
  • <image>: specifica l’immagine associata al feed RSS;
  • <language>: indica la lingua del canale;
  • <lastBuildDate>: specifica l’ultima data di creazione del file XML;
  • <managingEditor>: specifica l’indirizzo email della persona responsabile dei contenuti editoriali;
  • <pubDate>: specifica la data di pubblicazione dell’ultima notizia;
  • <rating>: specifica la valutazione delle notizie;
  • <skipDays>: suggerisce ai news aggregator i giorni in cui non prelevare nuove notizie;
  • <skipHours>: suggerisce ai news aggregator le ore in cui non prelevare nuove notizie;
  • <textInput>: specifica un campo di input di tipo testo che può essere mostrato con le notizie;
  • <ttl>: specifica il tempo di cache del feed RSS in minuti;
  • <webMaster>: specifica l’indirizzo email della persona responsabile dei problemi tecnici relativi al file XML.

L’elemento item

Passiamo ora alla definizione dei tag all’interno dell’elemento <item>, che rappresenta un singolo elemento del feed RSS, come un articolo o un aggiornamento. Contiene i seguenti tag:

  • <title>: indica il titolo della notizia;
  • <link>: indica il link di riferimento completo alla notizia;
  • <description>: fornisce una parte della descrizione della notizia;
  • <pubDate>: specifica la data di pubblicazione della notizia.

Sebbene solo <title> e <description> siano obbligatori, è consigliabile specificare anche <link> e <pubDate> per garantire un corretto funzionamento dell’elemento <item>.

Vi sono anche altri elementi opzionali all’interno di <item>:

  • <author>: indica il nome dell’autore o della fonte della notizia;
  • <category>: indica la categoria della notizia;
  • <comments>: indica l’URL della pagina dei commenti alla notizia;
  • <enclosure>: indica un oggetto multimediale collegato all’item della notizia;
  • <guid>: indica un identificatore univoco per l’item;
  • <source>: indica il canale RSS di provenienza dell’item.

Altri contenuti interessanti

Pubblicità

Leggi anche...

Vibe Coding: cos’è, come funziona e quali sono i migliori strumenti AI per programmare

Immagina di poter scrivere software senza dover digitare una...

I migliori libri per imparare a programmare in Python

Imparare a programmare in Python è un passo fondamentale...

Il file manifest.json: cos’è e a cosa serve

Il file manifest.json è un componente chiave nelle applicazioni web moderne,...

Java: cos’è e a cosa serve l’operatore modulo (%)

In Java, l'operatore modulo è rappresentato dal simbolo "%"...

Radice quadrata in C: vediamo come calcolarla in diversi modi

La radice quadrata è un'operazione matematica piuttosto comune (in...

Sperimentare la sequenza di Collatz in C++

Vediamo come verificare la congettura di Collatz con C++....
Pubblicità