9.4 Sources de données RDF

É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.

Autres sources de données pour Mozilla

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.

La liste d'historique de navigation

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.

Exemple d'utilisation de la liste historique

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.

Exemple 9.4.1 : Source Voir

<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>

Autres sources de données

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

NC:BookmarksRoot
La racine de la hiérarchie des marque-pages
NC:IEFavoritesRoot
Le dossier de marque-pages correspondant aux « Favoris IE » de l'utilisateur
NC:PersonalToolbarFolder
Le dossier de marque-pages correspondant au dossier de la barre d'outils personnelle

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

NC:FilesRoot
Racine du système de fichiers (habituellement une liste de disques)
URL d'un fichier
En utilisant une URL de fichier pour l'attribut ref, vous pouvez choisir un répertoire/dossier à retourner. Par exemple, vous pouvez utiliser file:///windows ou file:///usr/local

La 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é.

Sources de données composites

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.

Sources de données RDF personnalisées

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.

Exemple d'utilisation d'un fichier RDF

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

Exemple 9.4.2 : Source Voir

<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>

résultat de l'exemple 9.4.2

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.

Exemple de définition de l'attribut 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.

Exemple 9.4.3 : Source Voir

<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.