Écrit par Neil Deakin.
Traduit par Vincent S. (08/06/2004).
Page originale :
http://www.xulplanet.com/tutorials/xultu/intrordf.html
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 messages courriel. Cependant, il serait
incommode de le faire en entrant les données directement dans le fichier XUL. Cela
rendrait très difficile de modifier les marque-pages s'ils étaient directement dans le
fichier XUL. Le moyen de résoudre cela est d'utiliser les 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 quelle source de données RDF fournies pour peupler
les tree
avec des données
ou vous pouvez pointer vers un fichier RDF stocké en XML qui contient les données. Cela est
très commode pour afficher des arbres contenant beaucoup de lignes. RDF peut aussi peupler
d'autres éléments XUL comme les listbox
et les menu
. Nous allons
voir 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 voir quelques exemples de fichiers RDF/XML, regardez ceux fournis avec Mozilla. Ils ont l'extension rdf.
RDF consiste en un modèle, qui est une représentation des données sous forme de graphe. RDF/XML est un langage XML qui peut être 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'entê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. A l'intérieur de
l'élément RDF, vous placerez les données.
Une brève description de RDF sera donnée ici. Pour plus d'informations à propos de RDF, regardez les spécifications RDF (NdT : RDF est une recommandation du W3C). 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 hierarchisé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 utiliser ceci 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 autres arbres.
Ci-dessous, un exemple de fichier RDF/XML est montré, listant une table avec trois enregistrements et trois champs.
<RDF:RDF xmlns:RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:ANIMAUX="http://www.un-zoo-factice.com/rdf#">
<RDF:Seq RDF:about="http://www.un-zoo-factice.com/tous-les-animaux">
<RDF:li>
<RDF:Description RDF:about="http://www.un-zoo-factice.com/mammiferes/lion">
<ANIMAUX:nom>Lion</ANIMAUX:nom>
<ANIMAUX:espece>Panthera leo</ANIMAUX:espèce>
<ANIMAUX:classe>Mammifère</ANIMAUX:classe>
</RDF:Description>
</RDF:li>
<RDF:li>
<RDF:Description RDF:about="http://www.un-zoo-factice.com/arachnides/tarantule">
<ANIMAUX:nom>Tarantule</ANIMAUX:nom>
<ANIMAUX:espece>Avicularia avicularia</ANIMAUX:espèce>
<ANIMAUX:classe>Arachnide</ANIMAUX:classe>
</RDF:Description>
</RDF:li>
<RDF:li>
<RDF:Description RDF:about="http://www.un-zoo-factice.com/mammiferes/hippopotame">
<ANIMAUX:nom>Hippopotame</ANIMAUX:nom>
<ANIMAUX:espece>Hippopotamus amphibius</ANIMAUX:espèce>
<ANIMAUX:classe>Mammifère</ANIMAUX:classe>
</RDF:Description>
</RDF:li>
</RDF:Seq>
</RDF:RDF>
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écris, un pour chaque animal. Chaque balise
RDF:Description
décrit un seul enregistrement. A
l'intérieur de chaque enregistrement, trois champs sont décrit, nom,
espece et classe. Il n'est pas nécessaire pour tous les
enregistrements d'avoir les mêmes champs mais cela donne plus de sens.
A chacun des trois champs a été donné un espace de nommage appelé ANIMAUX,
dont l'URL a été déclaré dans la balise RDF
. Le nom a été
sélectionné car cela a du sens dans ce cas, mais nous aurions pu choisir quelque
chose d'autre. La fonctionnalité d'espace de nommage est utile car le champ
classe (NdT : traduction de class, dans la version originale)
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. A la place de l'élément Seq
, vous pouvez aussi utiliser
Bag
pour indiquer des données désordonnées, et Alt
pour indiquer des données où chaque enregistrement spécifie des valeurs alternatives
(tel que des URLs mirroirs).
Les ressources peuvent faire réference à l'intérieur d'un fichier XUL en combinant l'URL de l'espace de nommage suivit du nom du champ. Dans l'exemple ci-dessus, ont peut générer les URIs suivants qui peuvent être utilisés pour référer aux champs spécifiques :
Nom | http://www.un-zoo-factice.com/rdf#nom |
Espèce | http://www.un-zoo-factice.com/rdf#espece |
Classe | http://www.un-zoo-factice.com/rdf#classe |
Dans la suite, nous allons voir comment utiliser RDF pour peupler des éléments XUL