# XML/RSS

XML
Copertina Tutti i moduli · Sviluppo
PrefazioneXML/Prefazione
* IntroduzioneXML/Introduzione
* Entità singoleXML/Entità singole
* Strutture dati di baseXML/Strutture dati di base
* Relazione uno-moltiXML/Relazione uno-molti
* Relazione uno-unoXML/Relazione uno-uno
* Relazione molti-moltiXML/Relazione molti-molti
* Relazioni ricorsiveXML/Relazioni ricorsive
* Schemi di datiXML/Schemi di dati
* Document Type Definition (DTD)XML/DTD
* XHTMLXML/XHTML
* XPathXML/XPath
* XLinkXML/XLink
* CSSXML/CSS
* XSLT e fogli di stileXML/XSLT e fogli di stile
* CocoonXML/Cocoon
* Parsing di file XMLXML/Parsing di file XML
* XULXML/XUL
* Asynchronous JavaScript and XML (AJAX)XML/AJAX
* Web serviceXML/Web service
* XMLHttpRequestXML/XMLHttpRequest
* Database e XMLXML/Database e XML
* SVGXML/SVG
* VoiceXMLXML/VoiceXML
* DocBookXML/DocBook
* SMILXML/SMIL
* XBRLXML/XBRL
* WDDX
* RPCXML/RPC
* RDFXML/RDF - Resource Description Framework
* RSSXML/RSS
* NamespaceXML/Namespace
* Gestire XML con MySQL
* XML EncryptionXML/XML Encryption
* XQueryXML/XQuery
* XML e JDBC
* XFormsXML/XForms
* OpenOffice.org e l'OpenDocument FormatXML/OpenOffice.org e l'OpenDocument Format
* KML e Google EarthXML/KML
* Lo standard ACORD - XML nel settore delle assicurazioniXML/ACORD
Modifica il sommario
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?

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. 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. Questo è un problema importante per gli sviluppatori di lettori e aggregatori RSS.

## Storia

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

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.
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" |
| Elementi <channel> obbligatori | <description> | Breve descrizione del canale | New York Times > Breaking News, World News Multimedia |
| Elementi <channel> obbligatori | <link> | URL del sito web associato al canale | http://www.nytimes.com/index.html |
| Elementi <channel> opzionali | <language> | Lingua del canale | en-us |
| Elementi <channel> opzionali | <copyright> | Avviso sul copyright dei contenuti del canale | Copyright 2004 The New York Times Company |
| Elementi <channel> opzionali | <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. 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.
Un item può essere un figlio o un fratello di un channel.
Altri elementi opzionali si vedano le specifiche RSS 2.0.

## Come funziona?

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

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

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

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.
* FeedReader - Windows
* Sharp Reader - Windows(.NET)
* NetNewsWire - Macintosh
* Straw - Linux
* Bloglines - Server-based
* NewsHutch - Server-Based
* AmphetaDesk - Windows, Macintosh, Linux
* FeedDemon - Windows
* FeedReader - Windows
* NewsGator - Windows(.NET)
* RSS NewsWatcher - Windows
* Radio Userland - Windows, Macintosh
* SlashDock - Macintosh
* PocketFeed - PocketPC

## Note

* ↑ What is RSS?
* ↑ The myth of RSS compatibility
* ↑ HomePage.xml - RSS version 2
* ↑ Specifiche RSS, Harvard Law
* ↑ Specifiche RSS, Harvard Law
* ↑ Specifiche RSS 2.0