10.Format d'un flux RSS

10.1.Introduction

La norme RSS est basée sur le standard XML[c'est quoi?]. Ce format permet (en pratique) de diffuser un résumé d'information sous un format facilement interprétable et intégrable dans toute application (typiquement sur un site internet).

10.2.Structure de base d'un flux RSS

Le flux RSS le plus simple (i.e. ne contenant que les champs obligatoires et un exemple à minima) ressemble à:
<?xml version="1.0"?>
<rss version="2.0">
    <channel>
        <title>Exemple de flux RSS</title>
        <link>http://xml.toutestfacile.com</link>
        <description>Exemple de flux RSS pour XML Facile!</description>
        <item>
            <title>Exemple du jour</title>
            <description>Exemple du jour pour XML Facile!</description>
        </item>
    </channel>
</rss>
Il s'agit bien d'un fichier XML (encodé[c'est quoi?] par défaut en UTF-8). La balise racine est une balise rss, il est recommandé de préciser la version de la norme utilisée (par défaut, il s'agit de la dernière. C'est à dire 2.0 à ce jour). La balise rss doit obligatoirement contenir un bloc channel.
Le bloc channel doit obligatoirement contenir
  • une balise title, contenant le titre du flux RSS
  • une balise link, contenant le lien (URL) principal du flux RSS
  • une balise description, contenant la description du flux RSS
  • au moins un bloc item
Le bloc item doit obligatoirement contenir au moins une balise title (titre de l'article du flux) ou description (description de l'article du flux).

10.3.Structure complète d'un flux RSS

Le bloc channel peut être enrichi avec les informations suivantes:
  • une balise language précisant la langue du flux RSS
  • une balise copyright précisant une information de copyright
  • une balise managingEditor précisant l'adresse email du responsable éditorial du flux RSS
  • une balise webMaster précisant l'adresse email du responsable technique du flux RSS
  • une balise pubDate précisant la date de publication, au format RFC 822. Autrement dit, au format: [Nom du jour en anglais sur 3 lettres ("Mon", "Tue", ...) suivi d'une virgule,] jour sur 2 chiffres, espace, mois en anglais sur 3 lettres ("Jan", "Feb", etc.), espace, année sur 2 chiffres, espace, heures sur 2 chiffres, deux-points, minutes sur 2 chiffres[, deux-points, secondes sur 2 chiffres], espace, fuseau horaire ("UT", "GMT", "EST", etc.). Les données entre crochets sont optionnels. L'année peut également être précisée avec 4 chiffres.
  • une balise lastBuildDate précisant la date (au format RFC 822) de dernière modification du contenu.
  • une ou plusieurs balise(s) category précisant à quelle catégorie appartient (i.e. a quel sujet se rapporte) le flux RSS.
  • une balise generator précisant le nom du programme ayant généré le flux RSS.
  • une balise docs précisant l'adresse (URL) du document décrivant le format RSS utilisé.
  • une balise ttl précisant la durée (en minutes) pendant laquelle le contenu du flux RSS peut être conservé en cache avant qu'une mise à jour ne soit nécessaire.
  • un bloc image contenant
    • Une balise url précisant l'adresse (URL) du fichier image
    • Une balise title précisant le titre de l'image
    • Une balise link précisant une URL associé à l'image (à priori l'URL du flux RSS)
    • Une balise width précisant la largeur (en pixels) de l'image
    • Une balise height précisant la hauteur (en pixels) de l'image
    • Une balise description ajoutant une description à l'image
<?xml version="1.0"?>
<rss version="2.0">
    <channel>
        <title>Exemple de flux RSS</title>
        <link>http://xml.toutestfacile.com</link>
        <description>Exemple de flux RSS pour XML Facile!</description>
        <language>fr-fr</language>
        <copyright>Copyright 2009, ToutEstFacile</copyright>
        <managingEditor>webmaster@toutestfacile.com</managingEditor>
        <webMaster>webmaster@toutestfacile.com</webMaster>
        <pubDate>Mon, 02 Feb 2009 10:00:00 GMT</pubDate>
        <item>
            <title>Exemple du jour</title>
            <description>Exemple du jour pour XML Facile!</description>
        </item>
    </channel>
</rss>
Les blocs item peuvent être enrichis avec les informations suivantes:
  • une balise author précisant l'adresse email de l'auteur de l'article
  • une ou plusieurs balises category précisant le sujet auquel se rapporte l'article
  • une balise comments précisant l'adresse (URL) d'un document contenant les commentaires associés à l'article
  • une balise guid définissant un identifiant unique pour l'article
  • une balise pubDate précisant la date (au format RFC 822) de publication de l'article
  • une balise source précisant l'adresse (URL) du flux RSS d'où vient l'article