RSS 2.01

Spécification de Harvard. Version française: Scriptol.fr

Traducteur: Denis Sureau

Document original par Dave Winer à Harvard.

Résumé

La spécification du format RSS 2.01 par Harvard. Elle est compatible avec les versions .91 et .92. Elle n'a rien à voir avec la version 1.0 qui est un format RDF de syndication ni avec le format Atom de l'IETF. Ce document s'adresse aux auteurs de logiciels désirant générer des fichiers RSS ou afficher des flux, ainsi qu'à toute personne désirant se documenter sur le format.

Statut de ce Document

Ce document n'est pas une spécification du W3C. Il n'existe aucune spécification de syndication au W3C. Le W3C a spécifié le format XML à la base du présent format, ainsi que le format RDF à la base de la version 1.0.
Le présent document est sous licence Creative Common. Permission est donnée de l'imprimer et le distribuer pourvu que le nom de l'auteur et du traducteur, ainsi que les URL, ne soient ni supprimés ni modifiés .

La traduction débute ci-dessous

Table des matières

1. Qu'est-ce que RSS

RSS est un format de syndication de contenu Web.

Son nom est l'acronyme de Really Simple Syndication.

RSS est un dialecte de XML. Tous les fichiers RSS doivent être conformes à la spécification XML 1.0, qui est publiée sur le site web du World Wide Web Consortium (W3C).

Un résumé de l'historique des versions de RSS.

Au premier niveau, un document RSS est un élément <rss>, avec un attribut version obligatoire, qui précise à quelle version de RSS ce document se conforme. S'il se conforme à cette spécification, l'attribut version doit être 2.0.

Subordonné à l'élément <rss>, il y a un seul élément channel, qui contient l'information au sujet du canal (les méta données) et son contenu.

1.1. Exemples de fichiers

Voici des exemples pour: RSS 0.91, 0.92 et 2.0.

Noter que les fichiers d'exemples peuvent pointer sur des documents ou des services qui n'existent plus. L'exemple .91 a été créé lorsque les docs .91 ont été écrites. Ce serait une bonne idée de maintenir une liste d'exemples.

2. Au sujet de ce document

Ce document représente l'état de RSS sur la fin de 2002, en version 2.0.1.

Il incorpore toutes les modifications et additions, depuis la spécification de base pour RSS 0.91 (Juin 2000) et inclut de nouvelles fonctionnalités introduites dans RSS 0.92 (Décembre 2000) et RSS 0.94 (Août 2002).

Les notes de modification de trouvent ici.

D'abord, nous documentons les sous éléments requis et optionnels de <channel>; puis les sous éléments de <item>. Les sections finales répondent aux questions fréquemment posées, et fournissent un carnet de route pour les évolutions futures, et les instructions pour étendre RSS.

3. Eléments de channel

3.1. Eléments requis

Voici la liste des éléments de channel requis, chacun avec une brève description, un exemple, et lorsqu'elle existe un pointeur sur une description plus complète.

Elément Description Exemple
title Le nom du canal. C'est ainsi que l'on réfère à vôtre service. Si vous avez un site web HTML qui contient la même information que votre fichier RSS, le titre de votre canal devrait être le même que le titre du site. GoUpstate.com News Headlines
link L'URL de votre site web HTML correspondant au canal. http://www.goupstate.com/
description        Phrase or sentence décrivant le canal. Les dernières nouvelles de GoUpstate.com, un site Web du Spartanburg Herald-Journal.


3.2. Eléments optionnels

Voila une liste des éléments optionnels de channel.

Elément Description Exemple
language Le langage dans lequel est écrit le canal. Ceci permet aux aggrégateurs de regrouper tous les sites de langue italienne, par exemple, sur une même page. Une liste des valeurs possibles pour cet élément, telle que fournie par Netscape, est ici. Vous pouvez aussi utiliser les valeurs définies par le W3C. en-US, fr-FR
copyright Notice de copyright pour le contenu du canal. Copyright 2002, Spartanburg Herald-Journal
managingEditor Adresse email de la personne responsable du contenu éditorial. geo@herald.com (George Matesky)
webMaster Adresse email de la personne responsable des problèmes techniques relatifs au canal. betty@herald.com (Betty Guernsey)
pubDate La date de publication du contenu du canal. Par exemple, le New York Times publiant sur une base quotidienne, la date de publication change toutes les 24 heures. C'est alors que le pubDate de channel change. Toutes les dates et temps de RSS se conforment à la Spécification Date et Temps de RFC 822, à l'exception que l'année peut être représentée par deux ou quatre caractères (quatre de préférence). Sat, 07 Sep 2002 00:00:01 GMT
lastBuildDate La dernière date où le contenu du canal a changé. Sat, 07 Sep 2002 09:42:31 GMT
category Spécifie une catégorie ou plusieurs auxquelles correspond le canal. Suit les mêmes règles que l'élément category du niveau <item>. Plus d'informations. <category>Newspapers</category>
generator Une chaîne indiquant le programme utilisé pour générer le canal. MightyInHouse Content System v2.3
docs Une URL pointant sur la documentation du format utilisé pour le fichier RSS. C'est probablement un pointeur sur cette page. C'est pour les gens qui achopperont sur un fichier RSS sur un serveur dans 25 ans d'ici et se demanderont ce que c'est. http://cyber.law.harvard.edu/tech/rss
cloud Permet aux processus pour enregistrer en nuage d'être notifiés des mises à jour du canal, en implémentant un protocole de flux RSS publier-souscrire léger. Plus d'informations ici. <cloud domain="rpc.sys.com" port="80" path="/RPC2" registerProcedure="pingMe" protocol="soap"/>
ttl ttl représente la durée de vie. C'est un nombre de minutes qui indique combien de temps un canal peut être gardé en mémoire cache avant rafraîchissement à la source. Plus d'information ici. <ttl>60</ttl>
image Spécifie une image GIF, JPEG ou PNG qui ne peut pas être affichée avec le canal. Plus d'information ici.
rating La côte PICS pour le canal.
textInput Spécifie une champ d'entrée de texte qui ne peut pas être affiché avec le canal. Plus d'information ici.
skipHours Un indice pour les aggrégateurs leur indiquant combien d'heures peuvent être sautées. Plus d'information ici.
skipDays Un indice pour les aggrégateurs leur indiquant combien de jours peuvent être sautés. Plus d'information ici.


<image> sous élément de <channel> 

<image> est un sous élément optionnel de <channel>, qui contient trois sous élément requis et trois autres optionnels.

<url> est l'URL d'une image GIF, JPEG ou PNG qui représente la canal.

<title> décrit l'image, il est utilisé par l'attribut ALT de la balise HTML <img> quand le canal est rendu en HTML.

<link> est l'URL du site, quand le canal est affiché, l'image est un lien sur le site. (Note, en pratique les <title> et <link> d'image devraient avoir la même valeur que les <title> et <link> du canal.

Les éléments optionnels incluent <width> et <height>, nombres , indiquant la largeur et la hauteur de l'image en pixels. <description> contenant le texte inclut dans l'attribut TITLE du lien formé autour de l'image dans le rendu HTML.

La valeur maximale de largeur est 144, la valeur par défaut est 88.

La valeur maximale de hauteur est 400, la valeur par défaut est 31.

<cloud> sous élément de <channel> 

<cloud> est un sous élément optionnel de <channel>.

Il spécifie un service web qui supporte l'interface rssCloud interface qui peut être implémentée en HTTP-POST, XML-RPC ou SOAP 1.1.

Son but est de permettre aux traitements d'enregistrer comme "nuage" pour être notifiés des mises à jour du canal, par l'implémentation légère d'un protocole de flux RSS publier ou souscrire.

<cloud domain="rpc.sys.com" port="80" path="/RPC2" registerProcedure="myCloud.rssPleaseNotify" protocol="xml-rpc" />

Dans cet exemple, pour requérir une notification du canal ou il apparaît, vous devriez envoyer un message XML-RPC à rpc.sys.com sur le port 80, avec chemin /RPC2. La procédure à appeler est myCloud.rssPleaseNotify.

Une explication complète de cet élément et de l'interface rssCloud est ici.

<ttl> sous élément de <channel> 

<ttl> est un sous élément optionnel de <channel>.

ttl est là pour le temps d'existence. C'est un nombre de minutes qui indique combien de temps un canal peut demeurer en mémoire cache avant qu'elle ne soit rafraîchie à partir de la source. Cela fait qu'il est possible aux sources RSS d'être générés par un réseau en partage de fichiers tel que Gnutella. (N.d.T: Site fermé).

Exemple: <ttl>60</ttl>

<textInput> sous élément de <channel> 

Un canal peut optionnellement contenir un sous élément <textInput>, qui contient quatre sous éléments requis.

<title> -- Le libellé du bouton Submit (soumettre) dans la zone d'entrée de texte.

<description> -- Décrit la zone d'entrée de texte.

<name> -- Le nom de l'objet texte dans la zone d'entrée de texte.

<link> -- L'URL du script CGI qui traite les requêtes d'entrée de texte.

Le but de cet élément <textInput> à quelque chose de mystérieux. Vous pouvez l'utiliser pour spécifier une boite de moteur de recherche. Pour permettre à un lecteur de fournir une réponse. La plupart des aggrégateurs l'ignorent.

4. Eléments d'item

Un canal peut contenir tout nombre de <item>s. Un item peut représenter une "histoire" -- plutôt comme une histoire de journal ou de magazine; de sorte que sa description soit le synopsis de l'histoire, et que le lien pointe sur l'histoire entière. Un item peut aussi est lui-même complet, de sorte que sa description contienne le texte (HTML codé entité est permis, voir exemples), et le lien et le titre peuvent être omis. Tous les éléments d'un item sont optionnels, toutefois au moins le titre ou la description doivent être présents.

Element Description Exemple
title Le titre d'item. Venice Film Festival Tries to Quit Sinking
link L'URL de l'item. http://nytimes.com/2004/12/07FEST.html
description      Le synopsis de l'item. Quelques unes des discussions les plus chaudes au festival du film de Venise cette semaine concernaient la manière dont l'arrivée des stars au Palazzo del Cinema a été mise en scène.
author Adresse email de l'auteur de l'item. Plus.
category Place l'item dans une ou plusieurs catégories. Plus.
comments URL de la page de commentaires concernant l'item. Plus.
enclosure Décrit un objet média attaché à l'item. Plus.
guid Une chaîne qui identifie l'item de façon unique. Plus.
pubDate Indique quand l'item a été publié. Plus.
source Le canal RSS d'ou vient l'item. Plus.


<source> sous élément de <item> 

<source> est un sous élément optionnel de <item>.

Sa valeur est le nom du canal RSS d'où vient l'item, dérivée de son <title>. Il a un attribut requis, url, qui lie sur la XML-isation du source.

<source url="http://www.tomalak.org/links2.xml">Tomalak's Realm</source>

La finalité de cet élément est de propager le crédit des liens, de faire la publicité des sources d'items de news. Il peut être utilisé dans la commande Post d'un aggrégateur. Il devrait être généré automatiquement lors de l'envoi d'un item d'un aggrégateur à un outil de gestion de weblog.

<enclosure> sous élément de <item> 

<enclosure> est un sous élément de <item>.

Il a trois attributs requis. url indique où est localisée l'enclosure, length indique quelle est la taille en octets, et type indique quel est le type, un des types MIME standards.

L'url doit être une URL http.

<enclosure url="http://www.scripting.com/mp3s/weatherReportSuite.mp3" length="12216320" type="audio/mpeg" />

Un développement sur cet élément pour le cas de l'utilisateur se trouve ici. (NdT: le document original a été supprimé mais retrouvé et stocké ici).

<category> sous élément de <item> 

<category> est un sous élément optionnel de <item>.

Il a un attribut optionnel, domain, une chaîne qui identifie une taxonomie de catégorisation.

La valeur de l'élément est une chaîne où le séparateur est un slash qui identifie une localisation hiérarchique dans la taxonomie désignée. Les agents de traitement peuvent établir des conventions pour l'interprétation des catégories. Deux exemples sont fournis ci-dessous:

<category>Grateful Dead</category>

<category domain="http://www.fool.com/cusips">MSFT</category>

Vous pouvez inclure autant de catégories d'éléments qu'il vous en faut, en différents domaines, et avoir un item référencé de façon croisée dans différentes parts du même domaine.

<pubDate> sous élément de <item> 

<pubDate> est un sous élément optionnel de <item>.

Sa valeur est une date, indiquant quand l'item a été publié. Sil s'agit d'une date située dans le futur, les aggrégateurs peuvent choisir de ne pas afficher l'item avant cette date.

<pubDate>Sun, 19 May 2012 15:21:36 GMT</pubDate>

<guid> sous élément de <item> 

<guid> est un sous élément optionnel de <item>.

guid est là comme identifieur global unique. C'est une chaîne qui identifie l'item de façon unique. Quand elle est présente, un aggrégateur peut choisir de l'utiliser pour déterminer si l'item est nouveau.

<guid>http://some.server.com/weblogItem3207</guid>

Il n'y a pas de règle de syntaxe pour un guid. Les aggrégateurs peuvent les voir comme une chaîne. Il appartient à la source du flux d'établir l'unicité de la chaîne.

Si l'attribut guid a un attribut nommé "isPermaLink" avec une valeur true (vraie), le lecteur peut considérer qu'il s'agit du permalien de l'item, autrement dit, une url qui peut être ouverte par un navigateur, qui pointe sur l'item complet décrit par l'élément <item>. Un exemple:

<guid isPermaLink="true">http://inessential.com/2002/09/01.php#a2</guid>

isPermaLink est optionnel, sa valeur par défaut est true. Si sa valeur est false (faux), le guid ne peut pas être considéré comme une url, ou l'url vers quelque chose en particulier.

<comments> sous élément de <item> 

<comments> est un sous élément optionnel de <item>.

S'il est présent, c'est l'url de la page de commentaire de l'item.

<comments>http://ekzemplo.com/entry/4403/comments</comments>

Plus d'information sur les commentaires ici.

<author> sous élément de <item> 

<author> est un sous élément optionnel de <item>.

C'est l'adresse email de l'auteur de l'item. Pour la syndication de journaux et magazines par RSS, l'auteur est la personne qui a écrit l'article que <item> décrit. Pour les weblogs collaboratifs, l'auteur de l'item pourrait ne pas être le responsable d'édition ni le webmaster. Pour un weblog réalisé par un seul individu il serait pertinent d'omettre l'élément <author>.

<author>lawyer@boyer.net (Lawyer Boyer)</author>

5. Commentaires

RSS place des restrictions sur le premier caractère qui ne soit pas un espace dans les données des éléments <link> et <url>. Les données dans ces éléments doivent débuter avec un schème URI enregistré-IANA, tels que http://, https://, news://, mailto: et ftp://. Avant RSS 2.0, la spécification permettait seulement http:// et ftp://, toutefois, en pratique les autres schèmes d'URI étaient utilisés par les développeurs de contenu et reconnus par les aggrégateurs. Les aggrégateurs peuvent avoir des limites quand aux schèmes d'URI qu'ils reconnaissant. Les développeurs de contenu ne devraient pas supposer que tous les aggrégateurs reconnaissent tous les schèmes.

Dans RSS 0.91, différents éléments étaient restreints à 500 ou 100 caractères. Il ne pouvait pas y avoir plus de 15 <items> dans un <channel> de 0.91. Il n'y a pas de longueur de chaîne ni de limite de niveau XML dans RSS 0.92 et suivants. Les agents de traitement peuvent imposer leurs propres limites, et les générateurs peuvent avoir des options spécifiant que pas plus d'un certain nombre d' <item>s peut apparaître dans un canal, ou que les chaînes ont une longueur limitée.

Dans RSS 2.0, les dispositions sont prises pour la liaison entre un canal et sont identifieur dans un système de catalogue, utilisant la fonctionnalité de catégorie au niveau canal, décrite ci-dessus. Par exemple, poue lier un canal à son identifier Syndic8, on inclut un élément catégorie comme sous élément de <channel>, avec pour domaine "Syndic8", et pour valeur l'identifieur du canal dans la base de données de Syndic8. L'élément de catégorie approprié pour Scripting News pourrait être <category domain="Syndic8">1765</category>.

Une question fréquemment posée au sujet des <guid>s est comment ils se comparent aux <link>s. Est-ce la même chose? Oui, pour certains systèmes de contenu, et non pour d'autres. Pour certains systèmes, <link> est un permalien sur un item de weblog. Toutefois, dans d'autres systèmes, chaque <item> est le synopsis d'un article plus long, <link> pointe sur l'article, et <guid> est le permalien sur l'entrée dans le weblog. Dans tous les cas, il est recommandé que vous fournissiez un guid, et si possible faites en un permalien. Cela permet aux aggrégateurs de ne pas répéter les items, même s'il y a eu des modifications d'édition.

Si vous avez des questions au sujet du format RSS 2.0, postez les s'il vous plaît sur le forum RSS2-Support, hébergée par Sjoerd Visscher. Ce n'est pas un forum de débat, mais sert de ressource de support aux utilisateurs, auteurs et développeurs qui créent et utilisent des contenus au format RSS 2.0.

6. Etendre RSS

RSS a été créé en 1999, avec l'ambition d'être un format simple et facile à comprendre, avec des buts relativement modestes. Après qu'il soit devenu un format populaire, les développeurs ont voulu l'étendre en utilisant des modules définis dans des espaces de noms, comme spécifié par le W3C.

RSS 2.0 ajoute cette capacité, en suivant une règle simple. Un flux RSS peut contenir des éléments non décrits dans cette page, seulement si ces éléments sont définis dans un espace de nom.

Les éléments définis dans ce document ne sont pas eux-mêmes membres d'un espace de nom, ainsi RSS 2.0 peut rester compatible avec les version précédentes sans le sens suivant -- un fichier de version 0.91 ou 0.92 est aussi un fichier 2.0 valide. Si les éléments de RSS 2.0 se trouvaient dans un espace de nom, cette contrainte se trouverait brisée, un fichier de version 0.9x ne pourrait pas être un fichier 2.0 valide.

7. Carnet de route

RSS ne peut en aucune sorte être un format parfait, mais il est très populaire et largement reconnu. Disposer d'une spécification établie est quelque chose dont RSS avait besoin depuis longtemps. La finalité de ce travail est de l'aider à devenir quelque chose de standard, pour encourager l'accroissement du marché qui se développe autour de lui, et pour débroussailler un chemin pour l'innovation dans les nouveaux formats de syndication. Ainsi donc, la spécification RSS est, pour tous les emplois pratiques, gelée à la version 2.0.1. Nous prévoyons de possibles versions 2.0.2 ou 2.0.3 , etc. seulement pour le besoin de clarifier la spécification, et non pour ajouter de nouvelles fonctionnalités au format. Un ouvrage supplémentaire pourrait se faire sur des modules, en utilisant des espaces de noms, et dans des formats de syndication totalement nouveaux, portant de nouveaux noms.

8. Licence

RSS 2.0 est offert par Berkman Center for Internet & Society at Harvard Law School sous les termes de la licence Attribution/Share Alike Creative Commons . L'auteur du document original est Dave Winer, fondateur de UserLand software, et associé au Centre Berkman.

Fin de traduction

Le contenu de cette traduction est offert selon les termes de la licence Attribution/Share Alike Creative Commons.

Creative Commons License