Construction d'un fil RSS 1.0

  • Profil : Expert, Débutant
  • Technologie : RSS
  • Auteur : François Hodierne
  • Mise à jour : 14/10/2004

En bref

Pas à pas, comment construire un fil RSS au format RDF Site Summary 1.0.


Cet article fait suite à l'Introduction à RSS et reprend en particulier son exemple de fil RSS des publications d'OpenWeb.

La spécification RSS 1.0, datée de décembre 2000, a été créée par un groupe de travail indépendant. Selon cette spécification, RSS 1.0 est un format de syndication et de description de métadonnées léger, universel et extensible. Il se base intégralement sur la spécification RDF du W3C, en adoptant une structure modulaire basée sur les espaces de noms XML.

Changements par rapport à RSS 0.91

Le document RSS 0.91 que nous avions créé précédemment devient ainsi un premier exemple de feed RSS 1.0 minimal (le fichier est commenté).

Les modules

Un mécanisme d'extensivité

Les concepteurs de RSS 1.0 ont pris le parti de s'en tenir à un noyau de spécification aussi simple que possible. Ainsi, pour la description d'un élément, il n'existe que trois éléments (title, link et description). Pour aller plus loin et enrichir les (méta)données, ils ont decidé que tout se passerait via des modules qui permettent à RSS d'être étendu :

  • sans nécessiter des réécritures itératives de la spécification du noyau ;
  • sans qu'un consensus soit nécessaire pour chaque élément ;
  • sans alourdir RSS avec des éléments qui, en majorité, resteraient inutilisés dans la plupart des domaines et des applications.

Cette modularisation est accomplie en utilisant les espaces de noms XML . Dès lors, ajouter ou supprimer des fonctionnalités RSS revient simplement à inclure un ensemble spécifique de modules, les plus adaptés à la tâche à accomplir. Les modules les plus répandus sont :

Modules
Nom Statut Usage
Dublin Core Officiel définir des méta-données comme des dates, des auteurs, des mots-clefs…
Syndication Officiel donner des indications sur la fréquence de mise à jour
Content Officiel associer le contenu complet d'un article
Admin Proposé donne des indications sur le générateur du fil RSS
Creative Commons Proposé associer un copyright de type Creative commons
Wiki Proposé définir des méta-données propres aux wikis

Le module Dublin Core

Prenons tout d'abord l'exemple du module Dublin Core qui est sans doute un des plus utiles et des plus utilisés. (Pour en savoir plus sur le Dublin Core, vous pouvez consulter l'article Métadonnées et Dublin Core.)

Déclarons tout d'abord le module Dublin Core dans les espaces de noms XML :

<rdf:RDF xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns="http://purl.org/rss/1.0/">

Nous pouvons à présent ajouter à notre fil :

Reprenons l'exemple de notre fil OpenWeb, tout d'abord pour le canal :

<channel rdf:about="http://www.openweb.eu.org/">
<title>Openweb.eu.org</title>
<link>http://www.openweb.eu.org/</link>
<description>Description du site OpenWeb</description>
<dc:language>fr</dc:language>
etc.

Puis pour un élément :

<item rdf:about="http://openweb.eu.org/articles/png_vs_gif/">
<title>Le PNG face au GIF</title>
<link>http://openweb.eu.org/articles/png_vs_gif/</link>
<description>Qui est donc ce remplaçant du GIF, datant de 1996 et
méconnu de la plupart des graphistes, amateurs comme
professionnels ?</description>
<dc:creator>Fabrice Bonny</dc:creator>
<dc:date>2004-03-21</dc:date>
<dc:subject>Débutant,Expert,PNG,Multimédia</dc:subject>
</item>

Voir l'exemple complet avec l'ajout des éléments Dublin Core.

Module Content

Un choix inévitable au moment de former un fil RSS est de décider si l'on délivre le contenu complet du site (les articles entiers) ou si l'on ne fait qu'avertir le lecteur de sa mise en ligne (en lui fournissant une description, un résumé, le début des articles…) :

Dans ce dernier cas en particulier, il est intéressant d'enrichir le contenu avec des balises HTML plutôt que de n'offrir qu'un texte brut. C'est le rôle du module content.

Ajoutons tout d'abord ce module comme nous l'avons vu précédemment pour le Dublin Core :

<rdf:RDF xmlns:content="http://purl.org/rss/1.0/modules/content/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns="http://purl.org/rss/1.0/">

Puis, au niveau des item :

<item rdf:about="http://example.com/foo">
<title>My title</title>
<link>http://example.com/foo</link>
<description>Lorem ipsum</description>
<content:encoded>
<![CDATA[<p>Mon contenu peut désormais
être en <abbr>html</abbr>.</p>]]></content:encoded>
</item>

On notera ici l'utilisation de la section XML CDATA dont le contenu ne sera pas interprété comme du code source XML par les analyseurs syntaxiques. Ceci permet aux balises HTML d'être considérées comme du texte brut et d'éviter ainsi les conflits avec les balises XML. Une autre manière de faire aurait été d'échapper le balisage HTML, en transformant :

Notre exemple serait alors :

<content:encoded>
&lt;p&gt; Mon contenu peut désormais
être en &lt;abbr&gt;html&lt;/abbr&gt;. &lt;/p&gt;
</content:encoded>

Associer une image au fil RSS

Une bonne pratique existante consiste à associer une image (logo) au fil RSS. Cette image pourra apparaître dans les logiciels d'aggrégation ou sur les sites reprenant vos titres. Tout d'abord, il faut déclarer l'image dans la section channel du fil RSS avec son URI :

<channel rdf:about="http://www.openweb.eu.org/">
<title>Openweb.eu.org</title>
<link>http://www.openweb.eu.org/</link>
<description>Description du site OpenWeb</description>
<dc:language>fr</dc:language>
<image rdf:resource="http://openweb.eu.org/img/logo.png"/>
<items>
<rdf:Seq> [...] </rdf:Seq>
</items>
</channel>

Ensuite, il suffit d'insérer l'élément image au même niveau que les item. Cet élément image comporte 3 sous-éléments obligatoires ainsi définis :

Ce qui donne :

<image rdf:about="http://openweb.eu.org/img/logo.png">
<title>OpenWeb, pour les standards du web</title>
<url>http://openweb.eu.org/img/logo.png</url>
<link>http://openweb.eu.org/</link>
</image>

Voir notre exemple de fil RSS avec image.

Conclusion

Bien que sa syntaxe paraisse un peu complexe, RSS 1.0 est une bonne introduction au monde du Web sémantique et des technologies RDF car il en donne une application pratique et grand public, tout comme son cousin FOAF.

Liens


Une question, une remarque ? Écrivez à l'auteur à editorial@openweb.eu.org .

Page valide XHTML 1 Strict, CSS2 et accessible AA.
Ce site s'affiche mieux dans un navigateur conforme aux standards, voici pourquoi.
Site hébergé par l' APINC et actualités dopées par Dotclear.