Utiliser les modules de RSS 1.0 pour en étendre les capacités
En plus de la « syndication » de contenu, RSS 1.0 peut être utilisé avec divers modules pour ajouter des fonctionnalités. Étant basé sur RDF, il est possible d’ajouter plusieurs espaces de noms pour en faire un document composite. Plus simplement, vous pouvez étendre (je déteste cet anglicisme, mais je ne trouve rien de mieux en ce moment) RSS en y ajoutant d’autres standards Web. Vous pouvez même ajouter un format XML propriétaire, tant que celui-ci est défini dans son propre espace de noms. Je vais dans ce billet vous parler de deux de ces modules pouvant étendre RSS 1.0., Dublin Core et Content.
Pour du RSS, Dublin Core sert à définir les méta données reliés aux documents référencés dans le fil RSS ainsi qu’au fil RSS lui-même. La plupart du temps, on utilise le préfixe dc pour spécifier l’espace de nom dublin core. Par exemple, la balise dc:subject sert aux mots clés du document et la balise dc:description vous l’aurez deviné, pour la description (ou résumé) du document. Le module content est intéressant. Vous pouvez ajouter du contenu relié au document référencé. Ce contenu peut être encode de diverses manières. Vous pouvez par exemple ajouter du xhtml (ou du vieux html si celui-ci est encodé de façon à pouvoir être inclut dans du xml). Cela peut-être très utile si vous utilsez le fil RSS pour plus que la syndication du contenu. Vous pourriez utiliser un snippet de xhtml pour être affiché / transformé dans une liste de documents, affichés selon des critères reliés aux métadonnées.
Voici un petit exemple de code utilisant le module content:
<item rdf:about="http://www.benoitpiette.com/blogue/ecrire/poster.php?post_id=62"> <title>Un exemple RDF</title> <link>http://www.benoitpiette.com/blogue/ecrire/poster.php?post_id=62</link> <content:items><rdf:Bag> <rdf:li> <content:item> <content:format rdf:resource="http://www.w3.org/1999/xhtml" /> <content:encoding rdf:resource="http://www.w3.org/TR/REC-xml#dt-wellformed" /> <rdf:value rdf:parseType="Literal" xmlns="http://www.w3.org/1999/xhtml"> <em>Un exemple <strong>en xml</strong></em> <strong>bien formé</strong>. </rdf:value> </content:item> </rdf:li> <rdf:li> <content:item> <content:format rdf:resource="http://www.w3.org/TR/html4/" /> <rdf:value> <![CDATA[<em>Du bon <strong>vieux</em> html 4 pas compatible au XML </strong>.]]> </rdf:value> </content:item> </rdf:li> <rdf:li> <content:item> <content:format rdf:resource="http://www.isi.edu/in-notes/iana/assignments/media-types/text/plain" /> <rdf:value>Juste du texte <. </rdf:value> </content:item> </rdf:li> </rdf:Bag> </content:items> </item>
Plus d’information le module content ici.
En bonus, voici un peu d’information sur le module de dublin core dcterms. Celui-ci sert entre autres à insérer de l’information comme des durées ou des emplacements. Très utile si le document référencé dans le fil RSS contient de l’information sur un évènement qui a une durée, dc:date ici n’est pas suffisant. Un exemple ici vaut mille mots :
<dcterms:temporal> name=La grande noirceur; start=1936; end=1959; scheme=W3C-DTF </dcterms:temporal>
Le format de la date est défini par la note W3C-DTF, qui faut l’admettre, n’est pas très claire.
Dans le cas d’un document qui représente un évènement qui a une durée, le dcterms:temporal sera à l’intérieur d’une balise dc:coverage sous la balise item
Plus d’information sur le module dcterms ici et ici et sur la balise dc:coverage ici.