back to top

Il formato RSS: cos’è e come funziona

Il formato RSS è uno standard XML utilizzato per lo scambio di notizie, aggiornamenti o dati in generale via Web. La sua struttura non presenta differenze sostanziali rispetto ad un normale formato XML, se non per il fatto che, essendo uno standard, utilizza dei Tag predefiniti.

Un semplice esempio di file RSS

Come già detto, il suo utilizzo è quello dello scambio dati via Web. Ad esempio, realizzeremo una struttura capace di essere utilizzata come scambio delle ultime News pubblicate su un sito, in modo da renderle disponibili in formato XML (seguendo le specifiche RSS) a coloro che desiderano farne uso sulle proprie pagine.

<?xml version="1.0" encoding="ISO-8859-1"?>
<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>/tutorial/xml/tutorial447.htm</link>
      <pubDate>Mercoledi 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> che specifica la versione ed 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>: Titolo del sito.
  • <link>: Indirizzo Homepage del sito.
  • <description>: Descrizione (o sottotitolo) del sito.
  • <dc:language>: Lingua utilizzata per il sito.

A questo punto troviamo il Tag <item>, che rappresenta un singolo elemento all’interno del feed RSS, come un articolo o un aggiornamento. Contiene i seguenti tag:

  • <title>: Titolo della News.
  • <link>: Indirizzo della News.
  • <pubDate>: Data di pubblicazione della News.
  • <description>: 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.

Esempio di codice XML in formato RSS 2

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="ISO-8859-1"?>
<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

Si tratta di 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 in cui 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 parlare di esso come di un elemento a sé stante.

Tuttavia, parleremo di tutti 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>: specifica 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 che potrebbero generare errori nel file XML e compromettere 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><b><![CDATA[</b>Titolo della notizia<b>]]></b></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>: consente 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>: specifica 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>: indica una parte della descrizione della notizia;
  • <pubDate>: indica la data di pubblicazione della notizia.

Sebbene solo <title> e <description> siano obbligatori, è consigliabile specificare anche <link> e <pubDate> per 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...

WSDL: scopriamo cos’è il Web Services Description Language

Il Web Services Description Language (WSDL) è un documento...

SOAP: cos’è e come funziona

SOAP è l'acronimo di Simple Object Access Protocol ed...

Esempio di file XML

Un file XML (eXtensible Markup Language) è un formato...

XML e lettere accentate. Perchè mi da errore?

In un file XML non è possibile utilizzare i...
Pubblicità