Per concludere questo primo articolo, diamo uno sguardo più ravvicinato alle due specifiche attualmente riconosciute come ufficiali. Un primo caveat per chi ha intenzione di approfondire l'argomento da programmatore. Immaginate di voler fare uno script per trasformare in HTML un feed RSS o viceversa. Qualunque linguaggio usiate dovrete tenere conto delle differenze sintattiche tra le due specifiche. L'approccio è ben spiegato nell'articolo di Mark Pilgrim citato in precedenza, dove l'autore illustra la procedura per trasformare un feed RSS con Python.
Per un approfondimento sui vari elementi che è possibile inserire in un documento vi rimando alla consultazione diretta delle specifiche. Qui mi interessa osservare insieme i due documenti, cercando di comprenderne affinità e differenze. Ho cercato di agevolare il compito riproducendo lo schema a colori visto qui sopra e inserendo delle note di commento.
Se trascurate i dettagli e vi concentrate sugli elementi essenziali, avrete l'impressione di due formati pressocché identici. Gli elementi di base sono uguali e la loro 'semantica' pure. Le divergenze emergono posando l'occhio sui dettagli.
1. RSS 1.0 è più complesso, Mark Pilgrim dice 'più verboso'. RSS 2.0 è indubbiamente più intuitivo.
2. RSS 1.0, anche nelle sue applicazioni di base, fa un uso esteso dei Namespace. È nato per essere 'modularÈ. Cercherò di essere comprensibile. Questo formato ha un set molto limitato di elementi. Per esempio, al livello dell'elemento <item>, prevede solo tre sottoelementi: <link>, <title>, <description>. Nel documento di esempio potete osservare che ho aggiunto, però, anche altri dati: una 'categoria' (<dc:subject>), l'autore (<dc:creator>), la data di pubblicazione (<dc:date>). Potevo benissimo farne a meno, ma per me è una cosa buona inserirli. Notate, poi, che i nomi di questi tre elementi sono preceduti da un prefisso e dai due punti: dc:. Significa che questi elementi non fanno parte della specifica di base, ma appartengono ad un altro linguaggio, esattamente al modulo Dublin Core. Il parser che andrà a interpretare il documento deve saperlo e il prefisso serve a questo. È come se dicessi: "Caro parser, guarda che <dc:date> appartiene al Dublin Core. Hai notato il prefisso?". E dato che i parser vanno facilmente in confusione, quando in XML si usano Namespace esterni è obbligatorio dichiararlo all'inizio del documento. Se ci fate caso, l'ho fatto:
<rdf:RDF
xmlns="http://purl.org/rss/1.0/"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/">
Guardate l'ultima riga. Significa più o meno: "Caro parser, guarda che ho intenzione di usare elementi del Dublin Core. Stai attento, sono quelli che iniziano con dc:.". La prima riga, invece, dopo la dichiarazione del Namespace (xmlns) non presenta alcun prefisso. L'URL punta alla specifica RSS 1.0. Il mio bravo parser, ormai ben istruito, capirà che gli elementi senza prefisso (come <title>) appartengono ad RSS 1.0. Un altro Namespace che troverete sempre in un documento RSS 1.0 è quello di RDF.
Per approfondimenti sugli argomenti qui appena sfiorati vi rimando alla lista delle risorse alla fine dell'articolo.
3. Detto questo, è facile capire come RSS 2.0 preferisca all'uso esteso di moduli soluzioni 'internÈ. Anche nel secondo esempio ho usato metadati su categoria, autore e data, ma tutti e tre gli elementi sono previsti dalla specifica. Che, come si può intuire, ha un numero maggiore di elementi rispetto a RSS 1.0. Inoltre, in RSS 2.0 non abbiamo bisogno di definire un Namespace predefinito.
4. Entrambi i formati, comunque, sono modulari. La modularità è un concetto fondamentale in XML. È la via verso la libertà. Posso aggiungere tranquillamente nuovi elementi per qualsiasi esigenza. Perdonatemi, ma vi tocca un'altra metafora. Pensate ad RSS come ad una macchina molto spartana, con quattro ruote, un motore e una carrozzeria minimale. Per spostarmi da casa al lavoro va benissimo. E se un giorno piove? No problem: aggiungo il 'modulo' tettoia. Se fa caldo? Inserisco il 'modulo' aria condizionata. Quando non mi servono li ritolgo. Ecco, il Dublin Core o qualunque altro modulo, sono come la tettoia o l'aria condizionata.
5. Una differenza importante sta nella diversità dell'elemento radice: <rdf:RDF> per RSS 1.0, <rss version="2.0"> per RSS 2.0
6. Osservate nei due esempi la collocazione delle righe verdi. In RSS 1.0 l'elemento <channel> è al di fuori degli item, in RSS 2.0 li comprende al suo interno.
7. RSS 1.0 presenta all'interno di <channel> una lista con gli URL dei vari item, compresa nell'elemento <items>.
E per questo primo articolo siamo giunti alla fine. Per commenti, suggerimenti e critiche lo spazio è sempre aperto. La prossima volta ci metteremo nei panni di chi vuole dotare il suo sito di un magnifico feed RSS. Vedremo i tanti modi con cui potrà realizzare il suo desiderio.
News that comes to you - J.D. Lasica sulla Online Journalism Review
What is RSS - Mark Pilgrim su Xml.com
RSS Workshop - Utah University
The Evolution of RSS - WebReference
RDF per descrivere il Web - Articolo introduttivo su RDF
Guida Progettazione siti webDall'analisi dei requisiti fino allo sviluppo e alla promozione:... |
Guida Pubblicare un sito webLe verifiche fondamentali da effettuare prima del lancio di un nuovo... |
Guida Architettura dell'InformazioneL'Architettura dell'informazione è la disciplina che permette di... |
Ogni settimana, direttamente nella tua e-mail: guide, articoli, tutorial e FAQ su Web Design e grafica per il Web.
Iscriviti alla newsletter
|
|
Corso Google AdWords Base25 Giugno 2012 a Milano |
|
|
Corso Google AdWords Base05 Giugno 2012 a Roma |