Écrit par Neil Deakin
,
mise à jour par les contributeurs à MDC
.
Traduit par Caffeine (16/07/2004), mise à jour par Alain B. (04/04/2007) .
Page originale :
http://developer.mozilla.org/en/docs/XUL_Tutorial/RDF_Datasources
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.
Nous nous intéresserons ici aux sources de données additionnelles, ainsi qu'à la manière d'utiliser vos propres fichiers RDF comme sources de données.
Mozilla fournit nativement plusieurs sources de données. Certaines sont indiquées ici, avec quelques exemples. Leur fonctionnement est très similaire à celui des marque-pages, bien que les champs soient différents à chaque fois.
Ndt : Les ressources RDF fournies par mozilla ne sont utilisables que par les applications qui sont enregistrées dans le chrome. Vous ne verrez donc pas les données dans certains des exemples proposés.
Cette source de données fournit l'accès à la liste d'historique de
l'utilisateur, qui est une liste d'URLs
que l'utilisateur a consulté récemment. On peut se référer à cette ressource en utilisant
rdf:history
comme source de données. La table
ci-dessous montre les ressources (ou champs) que vous pouvez récupérer
depuis la source de donnée "history". Utilisez les URLs ci-dessous là
où vous souhaitez que la valeur de la ressource soit utilisée.
Date | rdf:http://home.netscape.com/NC-rdf#Date | Date de la dernière visite |
Name | rdf:http://home.netscape.com/NC-rdf#Name | Titre de la page |
Page | rdf:http://home.netscape.com/NC-rdf#Page | Nom de la page |
Referrer | rdf:http://home.netscape.com/NC-rdf#Referrer | Page d'origine (referrer) |
URL | rdf:http://home.netscape.com/NC-rdf#URL | URL de la page |
Visit Count | rdf:http://home.netscape.com/NC-rdf#VisitCount | Nombre de visites de la page |
Une liste d'historique typique affichera un arbre doté d'une
sélection de ces champs. Pour les utiliser, placez les URL ci-dessus
dans l'attribut label
des boutons ou des
cellules d'un arbre. Vous pouvez utiliser NC:HistoryRoot
comme valeur de l'attribut ref
. Vous
pouvez également utiliser la valeur NC:HistoryByDate pour
obtenir la liste d'historique triée par jour.
Voyons un exemple d'affichage de la liste d'historique. Nous afficherons l'historique dans un arbre avec les trois colonnes Nom, URL et Date.
<tree flex="1" datasources="rdf:history" ref="NC:HistoryRoot">
<treecols>
<treecol id="name" label="Nom" flex="1"/>
<treecol id="url" label="URL" flex="1"/>
<treecol id="date" label="Date" flex="1"/>
</treecols>
<template>
<rule>
<treechildren flex="1">
<treeitem uri="rdf:*">
<treerow>
<treecell label="rdf:http://home.netscape.com/NC-rdf#Name"/>
<treecell label="rdf:http://home.netscape.com/NC-rdf#URL"/>
<treecell label="rdf:http://home.netscape.com/NC-rdf#Date"/>
</treerow>
</treeitem>
</treechildren>
</rule>
</template>
</tree>
Les tableaux ci-dessous listent quelques-unes des autres sources de données disponibles avec Mozilla. Vous pouvez les utiliser comme vous voulez.
Marque-pages (rdf:bookmarks) :
Les marque-pages sont générés depuis la liste de marque-pages de l'utilisateur.
Ressources
Date d'ajout | rdf:http://home.netscape.com/NC-rdf#BookmarkAddDate | Date à laquelle le marque-page a été ajouté |
Description | rdf:http://home.netscape.com/NC-rdf#Description | Description du marque-page |
Dernière modification | rdf:http://home.netscape.com/WEB-rdf#LastModifiedDate | Date de la dernière modification |
Dernière visite | rdf:http://home.netscape.com/WEB-rdf#LastVisitDate | Date de la dernière visite |
Nom | rdf:http://home.netscape.com/NC-rdf#Name | Nom du marque-page |
Raccourci URL | rdf:http://home.netscape.com/NC-rdf#ShortcutURL | Champ de mots-clés personnalisés |
URL | rdf:http://home.netscape.com/NC-rdf#URL | L'URL vers laquelle pointe le lien |
Racines possibles pour les marque-pages
Fichiers(rdf:files) :
Une vue des fichiers de l'utilisateur.
Ressources
Nom | rdf:http://home.netscape.com/NC-rdf#Name | Nom du fichier |
URL | rdf:http://home.netscape.com/NC-rdf#URL | URL du fichier |
Racine possible des fichiers
ref
, vous pouvez choisir un répertoire/dossier à
retourner. Par exemple, vous pouvez utiliser file:///windows ou file:///usr/localLa source de données de fichiers est un exemple de source de données qui ne détermine ses ressources que lorsque cela est nécessaire. Nous ne voulons pas que tous les fichiers du système de fichiers soient évalués avant d'afficher les données. Seuls nous intéressent les fichiers et répertoires que l'arbre (ou tout autre élément) doit afficher à un instant donné.
Vous pouvez spécifier plusieurs sources de données dans l'attribut
datasources
en les séparant par des
espaces, comme dans l'exemple ci-dessous. Les données seront ainsi lues dans toutes les sources de données mentionnées.
<tree datasources="rdf:bookmarks rdf:history animals.rdf" ref="NC:BookmarksRoot">
Cet exemple lit les ressources des marque-pages, de l'historique et d'un fichier nommé animals.rdf. Celles-ci sont combinées en une source de données composite et peuvent être utilisées comme une unique source de données.
La source de donnée spéciale rdf:null
correspond à une source vide. Vous
pouvez utiliser cette source de données si vous voulez gérer
dynamiquement la source via un script, sans avoir à l'initialiser tout de suite
ou parce que vous ne connaissez pas son URL exacte.
Vous pouvez utiliser chacune des sources de données internes
ci-dessus si vous le désirez. Il en existe plusieurs autres, pour le
courrier électronique, les carnets d'adresses, les recherches...
Cependant, vous pouvez utiliser votre propre source de données RDF,
enregistrée dans un fichier RDF. Le fichier peut être local ou
distant. Il suffit d'indiquer l'URL du fichier RDF dans l'attribut
datasources
.
L'utilisation des fichiers RDF apporte les mêmes fonctionnalités que
n'importe quelle source de données interne. Vous pouvez
utiliser des règles pour retrouver un type spécifique de contenu. Les
attributs de l'élément rule
seront respectés s'ils
correspondent aux attributs d'un élément RDF Description
. Vous pouvez également créer des
fichiers RDF hiérarchiques.
Ce qui suit est un exemple d'utilisation d'un fichier RDF comme source de données. Le fichier RDF est relativement gros et peut être consulté séparément : Source RDF
<tree flex="1" width="200" height="200" datasources="animals.rdf"
ref="http://www.some-fictitious-zoo.com/all-animals">
<treecols>
<treecol id="name" label="Nom" primary="true" flex="1"/>
<treecol id="species" label="Espèces" flex="1"/>
</treecols>
<template>
<rule>
<treechildren>
<treeitem uri="rdf:*">
<treerow>
<treecell label="rdf:http://www.some-fictitious-zoo.com/rdf#name"/>
<treecell label="rdf:http://www.some-fictitious-zoo.com/rdf#species"/>
</treerow>
</treeitem>
</treechildren>
</rule>
</template>
</tree>
Ici, les données sont générées depuis le fichier RDF. L'attribut ref
a été positionné sur l'élément racine de ce
fichier, qui est la balise de premier niveau Seq
. Nous obtenons une liste complète
d'animaux. Si nous avions voulu, nous aurions pu positionner
l'attribut ref
sur n'importe quelle
valeur de l'attribut about
afin de
limiter la quantité de données retournées. Par exemple, pour afficher
seulement les reptiles, nous pouvons utiliser la valeur http://www.some-fictitious-zoo.com/reptiles.
ref
L'exemple ci-dessous montre comment afficher des éléments particuliers
d'une source de données RDF en définissant l'attribut ref
.
<window
id="example-window"
title="Mammifères du zoo"
xmlns:ANIMALS="http://www.some-fictitious-zoo.com/rdf#"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<button label="Cliquez ici pour voir les mammifères du zoo" type="menu"
datasources="animals.rdf" ref="http://www.some-fictitious-zoo.com/mammals">
<template>
<rule ANIMALS:specimens="0"></rule>
<rule>
<menupopup>
<menuitem uri="rdf:*" label="rdf:http://www.some-fictitious-zoo.com/rdf#name"/>
</menupopup>
</rule>
</template>
</button>
</window>
Dans le cas présent, nous voulons seulement la liste des
mammifères, nous sélectionnons donc l'URI de la liste des
mammifères. Vous remarquerez que la valeur de l'attribut ref
de notre exemple est
http://www.some-fictitious-zoo.com/mammals, ce qui
correspond à l'un des éléments Seq
du fichier RDF. Seuls les descendants de cette liste seront retournés.
Nous avons utilisé deux règles ici. La première filtre toutes les
ressources dont l'attribut ANIMALS:specimen
est positionné à
0. Vous pouvez voir cet attribut dans le fichier RDF pour
chacun des éléments Description
. Certains
d'entre eux ont une valeur de 0. Dans ce cas, la première règle
s'applique. Puisque cette règle n'a pas de contenu, rien ne sera
affiché pour les éléments concernés. Ainsi, nous pouvons cacher les
données que nous ne voulons pas afficher.
La seconde règle s'applique aux autres ressources et crée une rangée dans un menu surgissant. Le résultat final est un menu surgissant contenant tous les mammifères dont le spécimen n'est pas positionné à 0.
Dans la prochaine section, nous examinerons la syntaxe des règles complètes.
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.