La structure de base d’un document RSS est la suivante [46], dans l’ordre :
- déclaration XML,
- le conteneur ,
- description du canal,
- description de l’image (optionnelle),
- description du ou des articles,
- description du champ de saisie (optionnelle).
Cette structure est toujours la même dans les documents RSS. Elle est conforme au schéma RDF des données RSS (annexe 5.1 « Schéma RDF des documents RSS »). Aussi, un exemple [44] permet d’aborder chaque élément de la structure.
<?xml version="1.0"?>
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns="http://purl.org/rss/1.0/"
>
<channel rdf:about="http://www.xml.com/xml/news.rss">
<title>XML.com</title>
<link>http://xml.com/pub</link>
<description>
XML.com features a rich mix of information and services for the XML community.
</description>
<image rdf:resource="http://xml.com/universal/images/xml_tiny.gif" />
<items>
<rdf:Seq>
<rdf:li resource="http://xml.com/pub/2000/08/09/xslt/xslt.html" />
<rdf:li resource="http://xml.com/pub/2000/08/09/rdfdb/index.html"
/>
</rdf:Seq>
</items>
<textinput rdf:resource="http://search.xml.com" />
</channel>
<image rdf:about="http://xml.com/universal/images/xml_tiny.gif">
<title>XML.com</title>
<link>http://www.xml.com</link>
<url>http://xml.com/universal/images/xml_tiny.gif</url>
</image>
<item rdf:about="http://xml.com/pub/2000/08/09/xslt/xslt.html">
<title>Processing Inclusions with XSLT</title>
<link>http://xml.com/pub/2000/08/09/xslt/xslt.html</link>
<description>
Processing document inclusions with general XML tools can be problematic. This article proposes a way of preserving inclusion information through SAX-based processing.
</description>
</item>
<item rdf:about="http://xml.com/pub/2000/08/09/rdfdb/index.html">
<title>Putting RDF to Work</title>
<link>http://xml.com/pub/2000/08/09/rdfdb/index.html</link>
<description>
Tool and API support for the Resource Description Framework is slowly coming of age. Edd Dumbill takes a look at RDFDB, one of the most exciting new RDF toolkits.
</description>
</item>
<textinput rdf:about="http://search.xml.com">
<title>Search XML.com</title>
<description>Search XML.com's XML collection</description>
<name>s</name>
<link>http://search.xml.com</link>
</textinput>
</rdf:RDF>Cet exemple requiert bien sûr des commentaires supplémentaires. Notons déjà que chaque élément est décrit par des propriétés title, link, description. La propriété link contient une URL pointant vers l’élément décrit. La propriété description est optionnelle (pour l’élément item), absente pour l’élément image ou obligatoire pour les autres éléments (channel et textinput).
L’élément channel définit le site ou la page web (la ressource) syndiquée. Un fichier RSS décrit un « canal » RSS. L’élément channel contient une référence aux éléments associés : image, items, textinput. On peut penser qu’il s’agit d’une redondance puisqu’on les trouve dans la suite du document RSS de l’exemple, mais c’est surtout une facilité pour des traitements complémentaires.
L’élément image permet d’associer une image au canal RSS dans le site Web fédérateur. L’image doit être normalement d’une dimension de 88x33 pixels.
L’élément item définit le composant documentaire recherché pour la syndication. Il peut être répété 15 fois au maximum dans les versions 0.9x de RSS. C’est le coeur du document RSS.
Enfin l’élément textinput permet d’associer un champ de saisie à une URL qui reçoit via la méthode HTTP GET la valeur de la variable de requête saisie. Cet élément est l’objet de controverses dans le groupe de travail RSS41. Il est utilisé traditionnellement comme boîte de recherche ou comme champ de formulaire.
Comme cela a été dit. Cela paraît simple et çà l’est. Mais cela offre déjà des mécanismes d’agrégation (fédération) puissant. Cependant, il est possible de les étendre encore via l’utilisation des modules RSS, objet du chapitre suivant.


