Envoyé par : $grm$
Date : 21/08/2006 10:05
Bonjour,
en référence au code ci-dessous je souhaite créer un arbre qui affiche un ensemble de task qui ont en référence des substaks. J'arrive bien à afficher le premier élément (soit http://www.kotekom.com/task/1) mais pas les autres... je dois donc avoir un probleme de récursivité afin d'afficher les autres task... pourriez-vous m'aider SVP
Voici le code RDF:
<?xml version="1.0"?> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:task="http://www.kotekom.com/task#"> <rdf:Description rdf:about="http://www.kotekom.com/task/1"> <task:name>test1</task:name> <task:description>test1</task:description> <task:status>1</task:status> <task:priority>1</task:priority> <task:deadline>2006-08-15</task:deadline> <task:subtasks> <rdf:Seq > <rdf:li rdf:resource="http://www.kotekom.com/task/2" /> <rdf:li rdf:resource="http://www.kotekom.com/task/3" /> </rdf:Seq> </task:subtasks> </rdf:Description> <rdf:Description rdf:about="http://www.kotekom.com/task/2"> <task:name>test2</task:name> <task:description>test2</task:description> <task:status>3</task:status> <task:priority>2</task:priority> <task:deadline>2006-08-23</task:deadline> <task:subtasks> <rdf:Seq > <rdf:li rdf:resource="http://www.kotekom.com/task/4" /> </rdf:Seq> </task:subtasks> </rdf:Description> <rdf:Description rdf:about="http://www.kotekom.com/task/4"> <task:name>test4</task:name> <task:description>test4</task:description> <task:status>1</task:status> <task:priority>2</task:priority> <task:deadline>2006-08-30</task:deadline> <task:subtasks> </task:subtasks> </rdf:Description> <rdf:Description rdf:about="http://www.kotekom.com/task/3"> <task:name>test3</task:name> <task:description>test3</task:description> <task:status>3</task:status> <task:priority>3</task:priority> <task:deadline>2006-08-30</task:deadline> <task:subtasks> <rdf:Seq > <rdf:li rdf:resource="http://www.kotekom.com/task/5" /> <rdf:li rdf:resource="http://www.kotekom.com/task/6" /> </rdf:Seq> </task:subtasks> </rdf:Description> <rdf:Description rdf:about="http://www.kotekom.com/task/5"> <task:name>test6</task:name> <task:description>test6</task:description> <task:status>3</task:status> <task:priority>3</task:priority> <task:deadline>2006-08-13</task:deadline> <task:subtasks> </task:subtasks> </rdf:Description> <rdf:Description rdf:about="http://www.kotekom.com/task/6"> <task:name>test7</task:name> <task:description>test7</task:description> <task:status>2</task:status> <task:priority>3</task:priority> <task:deadline></task:deadline> <task:subtasks> </task:subtasks> </rdf:Description> </rdf:RDF>
Voici le code XUL:
<?xml version="1.0" encoding="ISO-8859-1"?> <?xml-stylesheet href="chrome://global/skin/" type="text/css"?> <window id="task-window" title="task" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" xmlns:task="http://www.kotekom.com/task"> <tree flex="1" datasources="http://localhost/task/taskRdf.php" ref="http://www.kotekom.com/task"> <treecols> <treecol id="name" label="Nom" primary="true" flex="1"/> </treecols> <template> <rule> <conditions> <content uri="?start"/> <triple subject="?start" predicate="http://www.kotekom.com/task#subtasks" object="?subtasks"/> <member container="?subtasks" child="?task"/> </conditions> <bindings> <binding subject="?task" predicate="http://www.kotekom.com/task#name" object="?name"/> </bindings> <action> <treechildren> <treeitem uri="?task"> <treerow> <treecell label="?name"/> </treerow> </treeitem> </treechildren> </action> </rule> </template> </tree> </window>
Merci d'avance pour votre aide
Envoyé par : thefab
Date : 23/08/2006 17:15
Ton template ne risque pas de fonctionner car la ref="http://www.kotekom.com/task" n'existe pas dans ton RDF.
Personnelement je n'ai jamais réussi à faire fonctionner ce genre de syntaxe:
<rdf:Description> <task:subtasks> <rdf:Seq> <rdf:li ... </rdf:Seq> </task:subtasks> </rdf:Description>
Càd un Seq dans un élément lui-même dans un Description.
Comme solution de remplacement je te propose:
RDF
<?xml version="1.0"?> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:task="http://www.kotekom.com/task#"> <!-- changé task en task (cosmétique uniquement) --> <rdf:Seq rdf:about="http://www.kotekom.com/tasks"> <rdf:li rdf:resource="http://www.kotekom.com/task/1"/> </rdf:Seq> <rdf:Description rdf:about="http://www.kotekom.com/task/1"> <task:name>Task1</task:name> </rdf:Description> <!-- même rdf:about que la tâche (IMPORTANT: les 2 sont fusionnés) --> <!-- (en gros ça veut dire qu'une tâche EST une liste de sous-tâches) --> <rdf:Seq rdf:about="http://www.kotekom.com/task/1"> <rdf:li rdf:resource="http://www.kotekom.com/task/2"/> <rdf:li rdf:resource="http://www.kotekom.com/task/3"/> </rdf:Seq> <rdf:Description rdf:about="http://www.kotekom.com/task/2"> <task:name>Task2</task:name> </rdf:Description> <rdf:Description rdf:about="http://www.kotekom.com/task/3"> <task:name>Task3</task:name> </rdf:Description> </rdf:RDF>
Comme je suppose que tes sous-tâches sont aussi des tâches tu peux définir la tâche en tant que Description et la liste des sous-tâches en tant que Seq avec le même rdf:about, ce qui veut dire que la tâche est à la fois un Description ET un Seq.
XUL:
<template> <rule> <conditions> <content uri="?tasks"/> <member container="?tasks" child="?task"/> <triple subject="?task" predicate="http://www.kotekom.com/task#name" object="?name"/> </conditions> <action> <treechildren> <treeitem uri="?task"> <treerow> <treecell label="?name"/> </treerow> </treeitem> </treechildren> </action> </rule> </template>
Fabrice
Il n'est plus possible de poster des messages dans ce forum.
Copyright © 2003-2013 association xulfr, 2013-2016 Laurent Jouanneau - Informations légales.
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.