lunedì 24 ottobre 2011

Fedd rss

Specifiche RSS 2.0

Traduzione italiana delle specifiche inglesi del formato RSS 2.0.
Note di traduzione
La presente documentazione è una traduzione italiana delle specifiche RSS 2.0, pubblicate da RSS Advisory Board il 12 Agosto 2006.
Questo documento è da considerare come risorsa di supporto. L'unica versione normativa è rappresentata dalle specifiche ufficiali in lingua inglese.
La traduzione italiana è stata eseguita da Simone Carletti <weppos@weppos.net>. Traduzione completata il 2006-04-16.
Nonostante sia stata usata la massima cura possibile nella fase di traduzione, non si esclude la presenza di errori nel presente documento. Qualsiasi errore individuato e segnalato all'autore della traduzione verrà verificato e corretto nel più breve tempo possibile.
  1. Che cos'è l'RSS?
  2. File di esempio
  3. Informazioni su questo documento
  4. Elementi obbligatori per channel
  5. Elementi opzionali per channel
  6. Elementi per <item>
  7. Commenti
  8. Estendere l'RSS
  9. Roadmap
  10. Licenza e proprietà

Che cos'è l'RSS?

L'RSS è un formato per la distribuzione di contenuti nel Web.
Il suo nome è acronimo di Really Simple Syndication.
L'RSS è un dialetto dell'XML. Ogni file RSS deve essere conforme alle specifiche XML 1.0, così come pubblicato sul sito del World Wide Web Consortium (W3C).
Cronologia delle versioni dell'RSS.
Al livello più alto, un documento RSS è costituito da un elemento <rss> con un attributo obbligatorio chiamato version, che specifica la versione RSS con la quale il file risulta conforme. Per essere conforme a queste specifiche l'attributo version deve avere come valore 2.0.
Subordinato all'elemento <rss> è l'elemento <channel>, che contiene informazioni relative al canale (metadati) e il suo contenuto.

File di esempio

Ecco alcuni file di esempio per: RSS 0.91, 0.92 e 2.0.
Da notare che i file di esempio potrebbero puntare a documenti o servizi non più esistenti. L'esempio 0.91 è stato creato nel momento in cui è stata scritta la documentazione per la versione corrispondente. Mantenere una traccia degli esempi è sembrata una buona idea.

Informazioni su questo documento

Questo documento rappresenta lo stato dell'RSS nell'autunno del 2002, versione 2.0.1.
Incorpora tutti i cambiamenti e le aggiunte, cominciando dalle specifiche di base per l'RSS 0.91 (Giugno 2000) ed include le nuove caratteristiche introdotte con l'RSS 0.92 (Dicembre 2000) e l'RSS 0.94 (Agosto 2002).
Le note relative alle modifiche sono riportate qui.
In primo luogo queste specifiche documentano i sottoelementi obbligatori ed opzionali per l'elemento <channel>; in seguito quelli per l'elemento <item>. La sezione finale contiene risposte alle domande più frequenti e fornisce una roadmap per evoluzioni future, oltre che linee guida estendere l'RSS.

Elementi obbligatori per channel

Questa è una lista degli elementi obbligatori per <channel>, ciascuno con una breve descrizione, un esempio e, dove disponibile, un collegamento ad una risorsa maggiormente descrittiva.
Elemento Descrizione Esempio
title Il nome del canale. Per gli utenti rappresenta il riferimento a chi fornisce il servizio. Se è disponibile un sito che presenta le stesse informazioni del file RSS, il titolo del canale (channel) dovrebbe essere lo stesso titolo del sito web. GoUpstate.com News Headlines
link L'URL del sito web HTML che corrisponde al canale. http://www.goupstate.com/
description Una frase o un riassunto per descrivere il canale. The latest news from GoUpstate.com, a Spartanburg Herald-Journal Web site.

Elementi opzionali per channel

Questa è una lista degli elementi opzionali per <channel>.
Elemento Descrizione Esempio
language La lingua nella quale è scritto il canale. Questo tag consente agli aggregatori di raggruppare tutti i siti italiani, per esempio, in una singola pagina. Una lista di valori consentiti per questo elemento, così come fornita da Netscape, è disponibile qui. E' possibile usare i valori definiti dal W3C. en-us
copyright Informativa sul copyright per il contenuto del canale. Copyright 2002, Spartanburg Herald-Journal
managingEditor Indirizzo email della persona responsabile dei contenuti editoriali. geo@herald.com (George Matesky)
webMaster Indirizzo email della persona responsabile dei problemi tecnici relativi al canale. betty@herald.com (Betty Guernsey)
pubDate   Sat, 07 Sep 2002 00:00:01 GMT
lastBuildDate La data dell'ultima modifica dei contenuti del canale. Sat, 07 Sep 2002 09:42:31 GMT
category Specifica una o più categorie alle quali fa parte il canale. Segue le stesse regole dell'elemento category del livello <item>. Maggiori informazioni. <category>Newspapers</category>
generator Una stringa indicante il programma usato per generare il canale. MightyInHouse Content System v2.3
docs Un URL che punta alla documentazione del formato usato per il file RSS. Probabilmente si tratterà di un collegamento a questa pagina (NdT. "questa pagina" identifica il documento orginale). L'utilità è per gli utenti che potranno incrociare un file RSS in un web server tra 25 anni che si chiederanno di cosa si tratti. http://www.rssboard.org/rss-specification
cloud Consente di registrare processi con un cloud (NdT. Servizio web che supporti l'interfaccia rssCloud) per essere notificati degli aggiornamenti del canale, implementando un protocollo leggero di pubblicazione-iscrizione per feed RSS. Maggiori informazioni qui. <cloud domain="rpc.sys.com" port="80" path="/RPC2" registerProcedure="pingMe" protocol="soap"/>
ttl ttl sta per time to live. E' il numero di minuti che indica per quanto tempo un canale può essere mantenuto in cache prima di rieseguire un aggiornamento dalla sorgente. Maggiori informazioni qui. <ttl>60</ttl>
image Specifica una immagine GIF, JPEG o PNG che può essere mostrata con il canale. Maggiori informazioni qui.  
rating Il PICS per la votazione del canale.  
textInput Specifica un campo input text che può essere mostrato con il canale. Maggiori informazioni qui.  
skipHours Un suggerimento per gli aggregatori indicante in quali orari possono saltare la lettura. Maggiori informazioni qui.  
skipDays Un suggerimento per gli aggregatori indicante in quali giorni possono saltare la lettura. Maggiori informazioni qui.  

<image> sub-element of <channel>

<image> è un sotto elemento opzionale di <channel>, che contiene a sua volta tre sotto elementi obbligatori e tre sotto elementi facoltativi.
<url> è l'URL di una immagine GIF, JPEG o PNG che rappresenta il canale.
<title> descrive l'immagine, è usato come contenuto dell'attributo ALT del tag HTML <img> quando il canale è rappresentato come HTML.
<link> è l'URL del sito, quando il canale è rappresentato come HTML l'immagine è un collegamento al sito. (Nota. in pratica i tag <title> e <link> dell'immagine dovrebbero avere gli stessi valori di <title> and <link> appartenenti a channel).
Gli elementi opzionali includono <width> e <height>, numeri indicanti la larghezza e l'altezza in pixel dell'immagine. <description> contiene il testo da includere come contenuto dell'attributo title del link creato attorno all'immagine in fase di rappresentazione HTML.
Il valore massimo per width è 144, quello predefinito è 88.
Il valore massimo per height è 400, quello predefinito è 31.

<cloud> sub-element of <channel>

<cloud> è un sotto elemento opzionale di <channel>.
Specifica un servizio web che supporti l'interfaccia rssCloud che può essere implementata in HTTP-POST, XML-RPC o SOAP 1.1.
Il suo scopo è consentire la registrazione di processi per essere notificati degli aggiornamenti del canale, implementando un protocollo leggero di pubblicazione-iscrizione per feed RSS.
<cloud domain="rpc.sys.com" port="80" path="/RPC2" registerProcedure="myCloud.rssPleaseNotify" protocol="xml-rpc" />
In questo esempio, per richiedere la notifica del canale riportato, è necessario inviare un messaggio XML-RPC alla porta 80 del server rpc.sys.com, con il percorso /RPC2. La procedura da richiamare è denominata myCloud.rssPleaseNotify.
Una spiegazione completa di questo elemento e dell'interfaccia rssCloud è qui.

<ttl> sub-element of <channel>

<ttl> è un sotto elemento opzionale di <channel>.
ttl sta per time to live. E' un numero di minuti che indica per quanto tempo un canale può essere mantenuto in cache prima di rieseguire un aggiornamento dalla sorgente. Questo rende possibile la gestione delle sorgenti RSS tramite un network di file sharing come Gnutella.
Esempio: <ttl>60</ttl>

<textInput> sub-element of <channel>

Un channel può contenere, facoltativamente, un sotto elemento <textInput>, che contiene a sua volta 4 sotto elementi obbligatori.
<title> -- L'etichetta del bottone di invio (NdT. campo input type submit) del modulo input text.
<description> -- Spiega il modulo input text.
<name> -- Il nome della casella di testo nel campo input text.
<link> -- L'URL dello script CGI predisposto per processare le richieste dell'input text.
Lo scopo dell'elemento <textInput> è ancora qualcosa di misterioso. E' possibile fare uso di questo tag per specificare il campo di un motore di ricerca interno. In alternativa lo si può adottare per consentire ai lettori di inviare un feedback.
La maggior parte degli aggregatori ignora questo tag.

Elementi per <item>

Un channel può contenere un qualsiasi numero di <item>.
Un item può rappresentare una "storia", come ad esempio una storia in un giornale o una rivista; in questo caso la sua descrizione è una sintesi della storia ed il collegamento indirizza alla storia completa.
Un item può anche contenere informazioni sufficienti per essere autonomo; in questo caso la descrizione contiene il testo (è ammesso un testo HTML con le entità codificate, vedi esempi) ed i tag <link> e <title> possono essere omessi.
Tutti gli elementi di un <item> sono opzionali, tuttavia deve essere almeno presente un <title> o una <description>.
Elemento Descrizione Esempio
title Il titolo di item. Venice Film Festival Tries to Quit Sinking
link L'URL di item. http://nytimes.com/2004/12/07FEST.html
description Una sintesi di item. Some of the most heated chatter at the Venice Film Festival this week was about the way that the arrival of the stars at the Palazzo del Cinema was being staged.
author Indirizzo email dell'autore di item. Approfondimento.  
category Include item in una o più categorie. Approfondimento.  
comments URL di una pagina contenente i commenti correlati a item. Approfondimento.  
enclosure Descrive un oggetto multimediale allegato a item. Approfondimento.  
guid Una stringa che identifica univocamente item. Approfondimento.  
pubDate Indica quando item è stato pubblicato. Approfondimento.  
source Il canale RSS dal quale proviene item. Appronfondimento.  

<source> sub-element of <item>

<source> è un sotto elemento opzionale di <item>.
Il suo valore è il nome del canale RSS da quale proviene l'item, derivato dal suo <title>. Ha un attributo obbligatorio, url, che collega alla rappresentazione XML della sorgente.
<source url="http://www.tomalak.org/links2.xml">Tomalak's Realm</source>
Lo scopo di questo elemento è di diffondere i crediti per link e di pubblicizzare le sorgenti delle news / degli elementi del feed. Può essere utilizzato nel comando Post di un aggregatore.
Dovrebbe essere generato automaticamente quando si invia un elemento da un aggregatore ad uno strumento di scrittura per blog.

<enclosure> sub-element of <item>

<enclosure> è un sotto elemento opzionale di <item>.
Ha tre attributi obbligatori. url indica doce si trova l'allegato, length indica la dimensione espressa in byte e type indica il tipo di file corrispondente ad uno dei MIME type standard.
L'url deve essere un url http.
<enclosure url="http://www.scripting.com/mp3s/weatherReportSuite.mp3" length="12216320" type="audio/mpeg" />
Un possibile scenario di con uso narrativo di questo elemento è qui.

<category> sub-element of <item>

<category> è un sotto elemento opzionale di <item>.
Ha un attributo opzionale, domain, una stringa che identifica una classificazione tassonomica per categorie.
Il valore dell'elemento è una stringa separata da slash ( / ) che identifica una collocazione gerarchica all'interno della tassonomia indicata. Gli interpreti possono stabilire convenzioni per l'interpretazione delle categorie. Due esempi sono forniti di seguito:
<category>Grateful Dead</category>
<category domain="http://www.fool.com/cusips">MSFT</category>
E' possibile includere tanti elementi category quanti siano necessari, per domini differenti, ed avere un elemento con riferimenti incrociati in diverse parti dello stesso dominio.

<pubDate> sub-element of <item>

<pubDate> è un sotto elemento opzionale di <item>.
Il suo valore è una data, corrispondente alla pubblicazione di item. Se la data fa riferimento ad un periodo futuro gli aggregatori possono scegliere di non visualizzare item fino a quella data.
<pubDate>Sun, 19 May 2002 15:21:36 GMT</pubDate>

<guid> sub-element of <item>

<guid> è un sotto elemento opzionale di <item>.
guid per Globally Inique Identifier. E' una stringa che identifica in modo univoco item.
Quando presente, l'aggregatore può scegliere di usare questa stringa per determinare se un item è nuovo.
<guid>http://some.server.com/weblogItem3207</guid>
Non ci sono regole particolari per la sintassi dell'elemento guid. Gli aggregatori devono considerarlo come stringa. Spetta alla sorgente del feed garantire l'unicità del valore della stringa.
Se l'elemento guid ha un attributo chiamato isPermalink impostato con valore true, il lettore può assumere che si tratti di un permalink all'elemento, ovvero un URL che può essere aperto in un web browser e che punta all'intero contenuto descritto dall'elemento <item>. Un esempio:
<guid isPermaLink="true">http://inessential.com/2002/09/01.php#a2</guid>
isPermalink è opzionale ed il suo valore predefinito è true. Se il suo valore è false, l'elemento guid non può essere considerato un URL o un indirizzo a qualcosa in particolare.

<comments> sub-element of <item>

<comments> è un sotto elemento opzionale di <item>.
Se presente, corrisponde all'URL della pagina contenente i commenti a item.
<comments>http://ekzemplo.com/entry/4403/comments</comments>
Maggiori informazioni sui commenti qui.

<author> sub-element of <item>

<author> è un sotto elemento opzionale di <item>.
Corrisponde all'indirizzo email dell'autore di item. Per i giornali e le riviste che distribuiscono un feed RSS, l'autore è la persona che ha scritto l'articolo che item descrive. For blog composti da più collaboratori, l'autore di item potrebbe essere differente dall'editore responsabile (managin editor) o dal webmaster. Per un blog gestito da un singolo individuo avrebbe senso omettere l'elemento <author>.

Commenti

L'RSS imposta delle restrizioni al primo carattere non spazio e non bianco che compone il valore degli elementi <link> e <url>. Il valore di questi elementi deve cominciare con uno schema URI IANA-registrato, come ad esempio http://, https://, news://, mailto:// e ftp://. Prima del formato RSS 2.0 le specifiche consentivano solo http:// e ftp://, tuttavia, in pratica gli altri schemi URI erano ugualmente usati dagli sviluppatori e supportati dagli aggregatori. Gli aggregatori possono avere dei limiti per quanto riguarda il supporto a schemi URI. Gli sviluppatori di contenuti non dovrebbero dare per scontato che ogni lettore per feed supporti tutti gli schemi.
Nell'RSS 0.91, molti elementi sono limitati a 500 o 100 caratteri. Non ci possono essere più di 15 <items> in un <channel> nel formato 0.91. Non ci sono limiti di lunghezza per le stringhe o limiti a livelli XML nell'RSS 0.92 e superiori. Gli interpreti possono imporre limiti specifici e i produttori di contenuti possono avere preferenze sul numero massimo di <item> che desiderano inserire in un channel, o quali stringhe devono avere limiti di lunghezza.
Nell'RSS 2.0 c'è un modo per collegare un canale al suo identificatore in un sistema di catalogazione usando la funzionalità dell'elemento category a livello channel, come descritto in precedenza. Per esempio, per collegare un canale al suo identificatore in Syndic8, basta includere un elemento category come sub-elemento di <channel>, con dominio "Syndic8" e come valore l'identificativo per il canale nel database di Syndic8. L'elemento category appropriato per Scripting News dovrebbe essere <category domain="Syndic8">1765</category>.
Una domanda frequente per quanto riguarda gli elementi <guid> è se/come possano essere comparati agli elementi <link>. Non sono la stessa cosa? Sì, in alcuni sistemi di contenuti, e no in altri. In alcuni sistemi, <link> è un permalink ad un post di un blog. Tuttavia, in altri sistemi, ogni <item> è un riassunto di un articolo più lungo, <link> punta all'articolo e <guid> è il permalink al post del blog.
In ogni caso, è consigliato fornire un guid e se possibile renderlo un permalink. Questo consente agli aggregatori di evitare la ripetizione di item, anche se è stato modificato o sono stati apportati cambiamenti.
Se avete domande sul formato RSS 2.0, siete invitati a postarle nella mailing list pubblica RSS-Public. La mailing list, gestita dall'RSS Advisory Board, serve come risorsa di supporto per utenti, autori e sviluppatori alle prese con la creazione e l'uso di contenuti nel formato RSS 2.0.

Estendere l'RSS

L'RSS ha avuto origine nel 1999 e si è sforzato di essere un formato semplice, facile da comprendere con obiettivi relativamente modesti. Dopo essere diventato un formato popolare, gli sviluppatori hanno desiderato estenderlo attraverso moduli definiti via namespace, così come specificato dal W3C.
RSS 2.0 introduce questa possibilità, seguendo una semplice regola. Un feed RSS può contenere elementi non descritti in questa pagina solo se questi elementi sono definiti in un namespace.
Gli stessi elementi definiti in questo documenti non parte di un namespace, così che l'RSS 2.0 risulti compatibile con versioni precedenti in questo senso -- un file in versione 0.91 o 0.92 è anche un file 2.0 valido. Se gli elementi di un RSS 2.0 fossero stati inseriti in un namespace, questa restrizione sarebbe venuta meno, un file in versione 0.9x non sarebbe stato un file 2.0 valido.

Roadmap

RSS non è in alcun modo un formato perfetto, ma è molto diffuso e largamente supportato. Disporre di una specifica stabile è qualcosa che l'RSS necessitava da molto tempo. Lo scopo di questo lavoro è di aiutare il formato a diventare un qualcosa di definito, garantirne la crescita nel mercato che si sta sviluppando attorno e di spianare la strada per innovazioni in nuovi formati di distribuzione. Perciò, le specifiche RSS, per necessità pratiche, sono bloccate alla versione 2.0.1. Anticipiamo la possibilità di versioni 2.0.2 o 2.0.3, ecc unicamente con lo scopo di chiarire ulteriormente le specifiche, non per aggiungere nuove funzionalità al formato. Lavori successivi dovrebbero concretizzarsi in moduli, attraverso l'uso di namespace, ed in formati di distribuzione completamente nuovi, con nuovi nomi.

Nessun commento:

Posta un commento