Écrit par Neil Deakin.
Traduit par Alain B. (22/07/2005).
Page originale :
http://www.xulplanet.com/tutorials/xulqa/q_tmpl_source-iterate-type.html
Ce gabarit parcourt la liste des humains pour ensuite parcourir récursivement leurs animaux favoris. Les animaux sont affichés à côté de leur race. La race est récupérée en utilisant un arc interne pointant vers l'animal. Une balise member
est utilisée dans la seconde règle. La liste des animaux est stockée dans la variable ?animal, et la valeur de toutes les ressources parentes de chaque animal est stockée dans la variable ?animalClass. Le triplet suivant filtre tous les noeuds qui ne sont pas du type d'une race. Cela est nécessaire car certains animaux ont plusieurs parents puisqu'ils sont des enfants d'une race et de la liste des animaux de compagnie.
Notez que la variable ?animal est utilisée dans l'attribut uri
pour les deux règles, même si la première génère une liste d'humains. Il est nécessaire que la variable utilisée dans l'attribut uri
soit la même dans toutes les règles bien que chaque règle générera des données différentes pour la variable.
Voir Voir la source de données
<vbox datasources="animals.rdf" ref="http://www.some-fictitious-zoo.com/humans">
<template>
<rule>
<conditions>
<content uri="?uri"/>
<member container="?uri" child="?animal"/>
<triple subject="?animal"
predicate="http://www.some-fictitious-zoo.com/rdf#name"
object="?name"/>
</conditions>
<action>
<vbox uri="?animal">
<label class="header" value="Les animaux favoris de ?name"/>
</vbox>
</action>
</rule>
<rule>
<conditions>
<content uri="?uri"/>
<triple subject="?uri"
predicate="http://www.some-fictitious-zoo.com/rdf#favoriteAnimal"
object="?animal"/>
<member container="?animalClass" child="?animal"/>
<triple subject="?animalClass"
predicate="http://www.w3.org/1999/02/22-rdf-syntax-ns#type"
object="http://www.some-fictitious-zoo.com/rdf#Class"/>
<triple subject="?animal"
predicate="http://www.some-fictitious-zoo.com/rdf#name"
object="?name"/>
<triple subject="?animalClass"
predicate="http://www.some-fictitious-zoo.com/rdf#name"
object="?animalClassName"/>
</conditions>
<action>
<label uri="?animal" class="indent" value="?name qui appartient à la race de ?animalClassName"/>
</action>
</rule>
</template>
</vbox>
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.