Écrit par Neil Deakin
,
mise à jour par les contributeurs à MDC
.
Traduit par Vincent S. (08/06/2004), mise à jour par Alain B. (04/04/2007) .
Page originale :
http://developer.mozilla.org/en/docs/XUL_Tutorial/Introduction_to_RDF
Attention : Ce tutoriel est ancien et n'est pas mis à jour. Bien que beaucoup d'informations soient encore valables pour les dernières versions de gecko, beaucoup sont aussi obsolètes. Il est préférable d'aller consulter cette page sur la version française de ce tutoriel sur developer.mozilla.org.
Dans cette section, nous allons nous intéresser à RDF (Resource Description Framework).
Nous pouvons utiliser l'élément tree
pour afficher un ensemble de données, telles que des marque-pages ou des courriels. Cependant, il ne serait
pas pratique de le faire en entrant les données directement dans le fichier XUL. Il
serait très difficile de modifier les marque-pages s'ils étaient directement dans le
fichier XUL. Le moyen de résoudre cette difficulté est d'utiliser des sources de données RDF.
RDF (Resource Description Framework) est un format qui peut être utilisé pour stocker des ressources telles que des marque-pages ou des courriels. Alternativement, on peut utiliser des données dans d'autres formats et écrire du code qui va lire le fichier et créer le fichier de données RDF. C'est de cette façon que Mozilla fonctionne quand il lit des données telles que les marque-pages, l'historique ou les messages de courriel. Mozilla fournit des sources de données pour ces données communes pour que vous puissiez facilement les utiliser.
Vous pouvez utiliser n'importe quelles sources de données RDF fournies pour peupler
les arbres tree
avec des données
ou vous pouvez désigner un fichier RDF au format XML contenant les données. Elles sont
très commodes pour afficher des arbres contenant beaucoup de lignes. RDF peut aussi peupler
d'autres éléments XUL comme les listbox
et les menu
. Nous verrons
cela dans la prochaine section.
Un très bref aperçu de RDF sera fourni ici. Pour un guide de RDF plus détaillé, lisez Introduction to the RDF Model (en). Il est recommandé de lire ce guide si vous êtes débutant en RDF.
Pour plus d'information sur le RDF, consultez les spécifications RDF (en).
RDF consiste en un modèle, qui est une représentation des données sous forme de graphe. RDF/XML est un langage XML utilisé pour représenter des données RDF. Il contient un ensemble assez simple d'éléments. L'exemple ci-dessous montre un gabarit RDF minimal.
<?xml version="1.0"?>
<RDF:RDF
xmlns:RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
...
</RDF:RDF>
Il a quelques similitudes avec l'en-tête XUL. À la place de l'élément
window
,
l'élément RDF
est utilisé. Vous pouvez voir que l'espace de nommage pour
RDF a été déclaré pour que les éléments RDF soient reconnus proprement. À l'intérieur de
l'élément RDF, vous placerez les données. Pour voir quelques exemples de fichiers RDF/XML,
regardez ceux présents avec Mozilla. Ils ont une extension .rdf.
Prenons l'exemple d'une liste de marque-pages générée à partir de RDF. Une liste de marque-pages contient un ensemble d'enregistrements, chacun avec un ensemble de données associées, telles que l'URL, le titre et une date de visite.
Pensez aux marque-pages comme une base de données qui est stockée comme une grande table avec de nombreux champs. Dans le cas de RDF cependant, les listes peuvent être hiérarchisées. C'est nécessaire pour que nous puissions avoir des dossiers ou des catégories de marque-pages. Chacun des champs dans la base de données RDF est une ressource, avec un nom associé. Le nom est décrit par un URI.
Par exemple, une selection de champs dans la liste de marque-pages de Mozilla est décrite par les URIs ci-dessous :
Name | http://home.netscape.com/NC-rdf#Name | Nom du marque-page |
URL | http://home.netscape.com/NC-rdf#URL | URL correspondante |
Description | http://home.netscape.com/NC-rdf#Description | description du marque-page |
Last Visited | http://home.netscape.com/WEB-rdf#LastVisitDate | Date de dernière visite |
Ils sont générés en prenant le nom de l'espace de nommage (NdT : exemple : http://home.netscape.com/NC-rdf) et en ajoutant le nom du champ (NdT : exemple : #Name). Dans la prochaine section, nous verrons comment les utiliser pour remplir les valeurs des champs automatiquement. Notez que la dernière date de visite a un espace de nommage légèrement différent des trois autres.
Voici maintenant un exemple de fichier RDF/XML listant une table avec trois enregistrements et trois champs.
<RDF:RDF xmlns:RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:ANIMALS="http://www.www.some-fictitious-zoo.com/rdf#">
<RDF:Seq RDF:about="http://www.www.some-fictitious-zoo.com/all-animals">
<RDF:li>
<RDF:Description RDF:about="http://www.www.some-fictitious-zoo.com/mammals/lion">
<ANIMALS:name>Lion</ANIMALS:name>
<ANIMALS:species>Panthera leo</ANIMALS:species>
<ANIMALS:class>Mammifère</ANIMALS:class>
</RDF:Description>
</RDF:li>
<RDF:li>
<RDF:Description RDF:about="http://www.www.some-fictitious-zoo.com/arachnids/tarantula">
<ANIMALS:name>Tarantule</ANIMALS:name>
<ANIMALS:species>Avicularia avicularia</ANIMALS:species>
<ANIMALS:class>Arachnide</ANIMALS:class>
</RDF:Description>
</RDF:li>
<RDF:li>
<RDF:Description RDF:about="http://www.www.some-fictitious-zoo.com/mammals/hippopotamus">
<ANIMALS:name>Hippopotame</ANIMALS:name>
<ANIMALS:species>Hippopotamus amphibius</ANIMALS:species>
<ANIMALS:class>Mammifère</ANIMALS:class>
</RDF:Description>
</RDF:li>
</RDF:Seq>
</RDF:RDF>
NdT : les spécifications du format RDF précisent qu'il faut toujours
indiquer l'espace de nom RDF pour les attributs du langage RDF comme ID
about
, resource
etc.
Pour être en conformité avec ces spécifications, vous devrez toujours déclarer un alias d'espace
de nom (comme RDF dans l'exemple précédent : xmlns:RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
)
et l'utiliser pour les attributs RDF (ex : RDF:about="..."
).
Ici, trois enregistrements ont été décrits, un pour chaque animal. Chaque balise
RDF:Description
décrit un seul enregistrement. À
l'intérieur de chaque enregistrement, trois champs sont décrits, name,
species et class. Il n'est pas nécessaire que tous les
enregistrements aient les mêmes champs mais cela donne plus de sens.
À chacun des trois champs a été donné un espace de nommage appelé ANIMALS,
dont l'URL a été déclarée dans la balise RDF
. Ce nom a été
choisi pour sa signification dans ce cas précis, mais nous aurions pu en choisir un autre.
La fonctionnalité d'espace de nommage est utile car le champ
class peut entrer en conflit avec celui utilisé pour les styles.
Les éléments Seq
et li
sont utilisés
pour indiquer que
les enregistrements sont dans une liste. C'est la même façon dont les listes HTML
sont déclarées. L'élément Seq
est utilisé pour indiquer que les éléments
sont ordonnés. À la place de l'élément Seq
, vous pouvez aussi utiliser
l'élément Bag
pour indiquer des données non ordonnées, et Alt
pour indiquer des données où chaque enregistrement spécifie des valeurs alternatives
(telles que des URLs mirroirs).
À l'intérieur d'un fichier XUL, il est fait référence aux ressources en combinant l'URL de l'espace de nommage suivit du nom du champ. Dans l'exemple ci-dessus, les URIs suivants générés peuvent être utilisés pour référer aux champs spécifiques :
Nom | http://www.www.some-fictitious-zoo.com/rdf#name |
Espèce | http://www.www.some-fictitious-zoo.com/rdf#species |
Classe | http://www.www.some-fictitious-zoo.com/rdf#class |
Dans la suite, nous allons voir comment utiliser RDF pour peupler des éléments XUL
Mozilla® est une marque déposée de la fondation Mozilla.
Mozilla.org™, Firefox™, Thunderbird™, Mozilla Suite™ et XUL™
sont des marques de la fondation Mozilla.