XML/RSS

Wikibooks, manuali e libri di testo liberi.
< XML
Indice del libro

Obiettivi di apprendimento

  • Comprendere le basi dell'RSS
  • Conoscere la storia di RSS
  • Essere in grado di creare un documento RSS 2.0 utilizzando XML
  • Sapersi iscrivere a un aggregatore RSS

RSS è un semplice formato XML utilizzato per divulgare notizie. Ora è largamente utilizzato da siti web che pubblicano regolarmente nuovi contenuti e forniscono un elenco di titoli con collegamenti ai loro ultimi contenuti. Contenuti come feed di notizie, elenchi di eventi, aggiornamenti di progetti, post di blog, podcast, video e immagini possono essere distribuiti tramite RSS. I feed RSS vengono inoltre utilizzati dai principali siti internet per consentire agli utenti di personalizzare e ricevere informazioni.

Cosa significa RSS?[modifica]

RSS è un nome usato per riferirsi a tre diversi standard. I tre rami separati sono il ramo RSS 0.9, il ramo RSS 1.0 (basato su RDF) e RSS 2.0. Le iniziali della sigla sono state espanse in tre nomi diversi: "Really Simple Syndication" (RSS 0.9, 2.0), "Rich Site Summary" e "RDF Site Summary" (per RSS 1.0).

Molte versioni diverse sono state realizzate da sviluppatori diversi con nomi diversi. Secondo XML.com, sono state sviluppate sette versioni di RSS.[1] Poiché il termine RSS fa riferimento a molti tipi di protocolli di distribuzione, questi protocolli RSS sono stati talvolta accusati di essere "incompatibili" tra loro.[2] Questo è un problema importante per gli sviluppatori di lettori e aggregatori RSS.

Storia[modifica]

La versione originale (0.90) di RSS è stata pubblicata da Netscape nel 1999. Gli sviluppatori di Netscape stavano progettando un formato per realizzare portali per siti di notizie. Dopo che Netscape ha pubblicato la versione semplificata di RSS, ha perso interesse nello suo sviluppo. Tuttavia un'altra società, UserLand Software, ha deciso di utilizzare RSS con i propri prodotti di registrazione Web e i propri software di scrittura web-based. Mentre UserLand Software ha continuato lo sviluppo della versione 0.91, un terzo gruppo con finalità non commerciali si è separato dalla società e ha progettato un nuovo formato basato sulla versione 0.90, che era una versione non semplificata. Il nuovo formato sviluppato da questo gruppo divenne noto come versione 1.0. Nel frattempo UserLand Software, indispettito da questa nuova versione, ha continuato a sviluppare RSS e ha pubblicato la versione 2.0, che è diventata la versione più ampiamente adottata di RSS. La specifica 2.0 è stata donata a una terza parte non commerciale, la Harvard Law School, che è ora responsabile del futuro sviluppo delle specifiche RSS 2.0. Di seguito è riportata una tabella che descrive ogni versione, il proprietario, i pro e i contro, nonché lo stato corrente e le raccomandazioni per l'uso.

Versione Proprietario Pro Stato Raccomandazione
0.90 Netscape Obsoleto Non usare
0.91 UserLand Estremamente semplice Ufficialmente obsoleto dall'introduzione di 2.0, ma ancora abbastanza popolare Utilizzare per syndication di base. Facilità di migrazione a 2.0 se hai bisogno di maggiore flessibilità
0.92, 0.93, 0.94 UserLand Consente metadati più ricchi di 0.91 Obsoleto Usare 2.0
1.0 Gruppo di lavoro RSS-DEV Basato su RDF, estensibile tramite moduli, non controllato da un singolo fornitore Nucleo stabile, sviluppo di moduli attivi Utilizzare per applicazioni basate su RDF o se sono necessari moduli avanzati specifici per RDF
2.0 UserLand Estensibile tramite moduli, facile migrazione dal ramo 0.9x Nucleo stabile, sviluppo di moduli attivi Utilizzare per distribuzioni generiche e ricche di metadati

Struttura di RSS[modifica]

Un documento RSS è spesso noto come feed RSS e può avere tre diversi tipi di estensioni di file: *.rss, *.xml e *.rdf. Tutti i documenti RSS devono essere conformi al 100% alle specifiche XML a partire dalla dichiarazione. Per identificare un documento RSS, il livello superiore inizia con un elemento <rss>, seguito da un attributo obbligatorio version che specifica la versione RSS. Il sottoelemento di <rss> è <channel> che contiene una breve descrizione del canale. Di seguito è riportato un esempio di RSS (2.0) del New York Times.[3]

<rss version="2.0">
    <channel>
        <title>NYT > Home Page</title>
        <link> <nowiki>http    //www.nytimes.com/index.html</nowiki> </link>
        <description>New York Times > Breaking News, World News Multimedia</description>
        <copyright>Copyright 2004 The New York Times Company</copyright>
        <language>en-us</language>
        <lastBuildDate>Sun,  7 Nov 2004 13    30    01 EST</lastBuildDate>
        <image>
            <url> <nowiki>http    //www.nytimes.com/images/section/NytSectionHeader.gif</nowiki> </url>
            <title>NYT > Home Page</title>
            <link> <nowiki>http    //www.nytimes.com/index.html</nowiki> </link>
        </image>
        <item>
            <title>Iraq Declares State of Emergency as Insurgents Step Up Attacks</title>
            <link> <nowiki>http    //www.nytimes.com/2004/11/07/international/middleeast/07cnd-iraq.html</nowiki> </link>
            <description> Today's attacks, including three police post raids that killed 21, came a day after insurgents killed at least 30. </description>
            <author> By EDWARD WONG </author>
            <pubDate> Sun, 07 Nov 2004 00    00    00 EDT </pubDate>
            <guid> <nowiki>http    //www.nytimes.com/2004/11/07/international/middleeast/07cnd-iraq.html</nowiki> </guid>
        </item>
    </channel>
</rss>

L'elemento <channel> ha tre elementi obbligatori e diversi elementi opzionali.

Elemento Descrizione Esempio
Elementi <channel> obbligatori <title> Nome del canale "The New York Times"
<description> Breve descrizione del canale New York Times > Breaking News, World News Multimedia
<link> URL del sito web associato al canale http://www.nytimes.com/index.html
Elementi <channel> opzionali <language> Lingua del canale en-us
<copyright> Avviso sul copyright dei contenuti del canale Copyright 2004 The New York Times Company
<LastBuildDate> L'ultima volta che il contenuto del canale è stato aggiornato/modificato Sun, 7 Nov 2004 13:30:01 EST

Altri elementi opzionali includono: managingEditor, webMaster, pubDate, category, generator, docs, cloud, ttl, image, rating, textInput, skipHours, skipDates. Per i requisiti o gli elementi secondari di ciascun elemento si faccia riferimento alla specifica RSS.[4] Di seguito sono riportati esempi di elementi immagine.

Elemento Descrizione Esempio
<link> L'URL per l'item http://www.nytimes.com/index.html
<title> Titolo dell'immagine NYT> Home Page
<url> L'URL dell'immagine http://www.nytimes.com/images/section/NytSectionHeader.gif

Un canale può contenere vari <item>. Un item può rappresentare una "storia", per esempio come una storia in un giornale o una rivista; in tal caso, la sua descrizione sarà una sinossi della storia e il collegamento punterà all'intera storia. Un item può anche essere completo di per sé: in tal caso, la descrizione conterrà il testo (è consentita la codifica delle entità di HTML), mentre il collegamento e il titolo possono essere omessi.

Ogni canale RSS può contenere fino a 15 elementi. Tutti gli elementi di un item sono opzionali, tuttavia un elemento <item> deve contenere almeno un elemento <title> o <description>.

Elemento Descrizione Esempio
<title> Titolo dell'articolo L'Iraq dichiara lo stato di emergenza mentre gli insorti intensificano gli attacchi
<link> L'URL per l'articolo http://www.nytimes.com/2004/11/07/international/middleeast/07cnd-iraq.html
<description> Breve descrizione dell'articolo Gli attacchi di oggi, tra cui tre incursioni della polizia che hanno ucciso 21 persone, sono arrivati ​​il ​​giorno dopo la morte di almeno 30 ribelli.
<author> Nome dell'autore e/o indirizzo e-mail dell'autore mail@nytimes.com (Edward Wong)
<pubDate> Data / ora in cui l'articolo è stato pubblicato Sun, 07 Nov 2004 00:00:00 EDT
<guid> È una stringa che identifica in modo univoco l'elemento. Può essere utilizzato dall'aggregatore per determinare se un articolo è nuovo. http://www.nytimes.com/2004/11/07/international/middleeast/07cnd-iraq.html

Altri includono: source, enclosure, category e comment.[5]

Un item può essere un figlio o un fratello di un channel.

<!-- Esempio di figlio -->

    <channel>
        ... 
        <item>
            ..... 
        </item> 
    </channel> 

<!-- Esempio di fratello -->	

    <channel>
        ... 
    </channel> 
    <item>
        ..... 
    </item>

Altri elementi opzionali si vedano le specifiche RSS 2.0.[6]

Come funziona?[modifica]

RSS può essere diviso in due parti: il lettore/aggregatore e il feed. Il lettore è il programma che legge e presenta il feed RSS in un formato comprensibile. Il feed è il sito web con il suo file RSS. I feed RSS sono in genere identificati sulle pagine web con un'icona arancione a forma di rettangolo o un'icona arancione con sopra la sigla RSS. Per visualizzare il codice XML è sufficiente fare clic sull'icona.

Creare un feed RSS[modifica]

L'autore di un sito Web può creare un feed RSS per se stesso in diversi modi: eseguendolo manualmente, utilizzando un software o tramite servizi online. La maggior parte dei siti web di grandi dimensioni utilizza software di gestione dei contenuti per produrre il proprio feed RSS. Ogni volta che viene apportata una modifica sul loro sito Web, il software di gestione dei contenuti produce un file RSS delle modifiche con i nuovi elementi aggiunti e quelli vecchi rimossi.

Iscrizione a un feed RSS[modifica]

Il sottoscrittore di un feed RSS ha bisogno di un aggregatore RSS. Questo cercherà le informazioni che sono state sottoscritte e le visualizzerà. Supponi di iscriverti alla sezione sport del New York Times; ogni volta che il NY Times pubblica un nuovo articolo sportivo, i titoli, la descrizione e l'URL dell'articolo verranno visualizzati sul tuo computer. Ogni volta che sei online, l'aggregatore cercherà e ordinerà il tuo elenco di interessi e li visualizzerà.

Aggregatori RSS[modifica]

L'aggregatore RSS (RSS Reader) è un'applicazione che viene utilizzata per raccogliere, aggiornare e visualizzare i feed RSS. Di seguito è riportato un elenco di alcuni aggregatori RSS per piattaforme diverse su cui l'aggregatore funzionerà correttamente.

Note[modifica]

  1. What is RSS?
  2. The myth of RSS compatibility
  3. HomePage.xml - RSS version 2
  4. Specifiche RSS, Harvard Law
  5. Specifiche RSS, Harvard Law
  6. Specifiche RSS 2.0