Écrit par Neil Deakin.
Traduit par Alain B. (22/07/2005).
Page originale :
http://www.xulplanet.com/tutorials/xulqa/q_tmpl_predicate-iterate-conditional.html
Ici, nous essayons de déterminer quel est l'animal de compagnie favori de Robert. En fait, nous cherchons à identifier quels items apparaissent dans deux listes. Les résultats escomptés sont Caméléon et Tarentule. Pour commencer, nous parcourons les animaux de compagnie de Robert en utilisant le premier triplet. Ensuite, nous utilisons un autre triplet et un membre pour parcourir les animaux de Robert. Les deux triplets et le membre sont nécessaires pour obtenir le conteneur 'pets' de Robert et finalement les animaux de compagnie.
La clef ici est que les deux listes utilisent la même variable favoriteAnimal. Elle fait que le gabarit commence par générer la liste des animaux favoris et les ajoute à cette variable puisque cette condition apparaît en premier dans la liste des règles. Ensuite, la liste des animaux est construit, et la même variable est ajustée pour exclure l'animal qui ne correspond pas au deux listes.
Voir Voir la source de données
<vbox datasources="animals.rdf" ref="http://www.some-fictitious-zoo.com/humans/robert">
<template>
<rule>
<conditions>
<content uri="?uri"/>
<triple subject="?uri"
predicate="http://www.some-fictitious-zoo.com/rdf#favoriteAnimal"
object="?favoriteAnimal"/>
<triple subject="?uri"
predicate="http://www.some-fictitious-zoo.com/rdf#pets"
object="?pets"/>
<member container="?pets" child="?favoriteAnimal"/>
<triple subject="?favoriteAnimal"
predicate="http://www.some-fictitious-zoo.com/rdf#name"
object="?name"/>
</conditions>
<action>
<label uri="?favoriteAnimal" value="?name"/>
</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.