Forums : Template et RDF

Aller à la discussion :  Plus récente Plus ancienne

# Affichage élements d'un RDF

Envoyé par : lfournier

Date : 05/03/2007 18:21

Bonjour, Pouvez-vous me donner des indications sur la gabarit pour afficher le RDF ci-dessous (qui est validé W3C) dans un arbre hiérarchique de la forme ?

+ TITRE
    REQ1
    + SECTION
         + REQ2
             REQ1

En particulier, les valeur à afficher sont des éléments et non des attributs.

Autre question: Comment faire afficher les valeurs des "rdf:about" dans l'arbre ?

Merci

<?xml version="1.0" encoding="iso-8859-1"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://none/" >
  <document>
     <section>
      <rdf:Seq rdf:about="root">
        <title>MY_TITRE</title>
        <rdf:li>
          <rdf:Bag rdf:about="REQ1">
            <req>MY_REQ1</req>
          </rdf:Bag>
        </rdf:li>
        <rdf:li>
          <rdf:Seq>
           <section>MY_SECTION</section>
            <rdf:li>
              <rdf:Bag rdf:about="REQ2">
                <req>MY_REQ2</req>
               <rdf:li rdf:resource="REQ1"/>
              </rdf:Bag>
            </rdf:li>
           </rdf:Seq>
         </rdf:li>
      </rdf:Seq>
   </section>
  </document>
</rdf:RDF>

# Re: Affichage élements d'un RDF

Envoyé par : papy

Date : 06/03/2007 11:13

Pour ta seconde question, cela dépend du type de syntaxe que tu utilise :

  • avec la syntaxe simplifiée, tu mets
 <treecell label="rdf:*"/>
  • avec la syntaxe complète, tu met l'attribut qui t'intéresse, par exemple
 <treecell label="?root"/>

Pour la première, je ne vois pas vraiment comment faire avec le rdf que tu fournis, mais cela ne veut pas dire que ce n'est pas possible.

Ce qui me dérange, c'est que tu ne spécifie pas de nouveau namespace pour tes attributs, du coup je ne vois pas comment les référencer...

 <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:truc="http://none/" >
   ...
     <truc:title>MY_TITLE</truc:title>
   ...
 </rdf>

Si tu fais ainsi, dans le code XUL tu peux utiliser rdf:http://none/title pour référencer le titre, autrement je ne vois pas.

La syntaxe XML pour décrire un RDF est assez large, tu peux décrire un même RDF de nombreuses façon, mais je dois avouer que celle que tu utilises me bloque un peu. Regarde du côté du tutoriel sur les templates, il y a pas mal d'exemples qui pourraient t'aider.

# Re: Affichage élements d'un RDF

Envoyé par : lfournier

Date : 06/03/2007 16:57

Merci Papy, je vais essayer d'affiner ma question: J'ai ajouté un namespace et simplifié l'exemple...voici un XUL+RDF qui donne l'arbre:

-ID_SECTION
    ID_REQ1
   -ID_REQ2
       ID_REQ1

mais je voudrais à la place:

-SECTION
    REQ1
   -REQ2
       REQ1

Je veux bien changer s'il le faut le RDF, mais il doit passer le "validator W3C" et les ressources doivent être définies sur place car le RDF doit pouvoir être visualisé avec une feuille CSS sans transformation de l'ordre.

<?xml version="1.0"?>
<window xmlns:html="http://www.w3.org/1999/xhtml" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<tree flex="1" datasources="data3.rdf" ref="root"  flags="dont-build-content">
  <treecols>
    <treecol label="Requirement" primary="true" flex="1" />
  </treecols>
   <template>
    <rule>
      <treechildren>
       <treeitem uri="rdf:*" open="true">
         <treerow>
           <treecell label="rdf:http://tramway/id"/>
         </treerow>
       </treeitem>
      </treechildren>
    </rule>
  </template>
</tree>
</window><?xml version="1.0" encoding="iso-8859-1"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:T="http://tramway/" >
     <rdf:Seq rdf:about="root">
       <rdf:li>  
          <rdf:Seq rdf:about="SECTION" T:id="ID_SECTION">
            <rdf:li>
              <rdf:Bag rdf:about="REQ1" T:id="ID_REQ1"/>
            </rdf:li>
            <rdf:li>
              <rdf:Bag rdf:about="REQ2" T:id="ID_REQ2">
                <rdf:li rdf:resource="REQ1"/>
              </rdf:Bag>
            </rdf:li>
           </rdf:Seq>
         </rdf:li>
      </rdf:Seq>
</rdf:RDF>

# Re: Affichage élements d'un RDF

Envoyé par : papy

Date : 07/03/2007 10:53

Si ton arbre affichent bien l'arborescence mais que le texte ne te convient pas, la solution la plus simple pour régler ton problème est d'ajouter un nouvel attribut dans ton RDF.

  • T:id représente l'id de l'élément
  • T:label représente le texte à afficher
 ...
 <treecell label="rdf:http://tramway/label"/>
 ...
 <?xml version="1.0" encoding="iso-8859-1"?>
 <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:T="http://tramway/" >
   <rdf:Seq rdf:about="root">
     <rdf:li>
       <rdf:Seq rdf:about="SECTION" T:id="ID_SECTION" T:label="SECTION">
         <rdf:li>
           <rdf:Bag rdf:about="REQ1" T:id="ID_REQ1" T:label="REQ1"/>
           ...
         </rdf:li>
       </rdf:Seq>
     </rdf:li>
   </rdf:Seq>
 </rdf:RDF>

# Re: Affichage élements d'un RDF

Envoyé par : lfournier

Date : 07/03/2007 11:02

Oui mais justement, je veux éviter de dupliquer les attributs...pour qu'il n'y ait que le 'rdf:about' et pas 'T:id' ni 'T:label'.

# Re: Affichage élements d'un RDF

Envoyé par : papy

Date : 07/03/2007 11:36

Hum je suis encore passé à côté d'un truc, avec ton RDF tu n'as pas besoin d'ajouter l'attribut label, vu que le rdf:about correspond à ce que tu cherche.

 ...
 <treecell label="rdf:*"/>
 ...
 <?xml version="1.0" encoding="iso-8859-1"?>
 <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
   <rdf:Seq rdf:about="root">
     <rdf:li>
       <rdf:Seq rdf:about="SECTION">
         <rdf:li>
           <rdf:Bag rdf:about="REQ1"/>
           ...
         </rdf:li>
       </rdf:Seq>
     </rdf:li>
   </rdf:Seq>
 </rdf:RDF>

Après il faut bien voir que l'attribut rdf:about doit être unique, donc si tu dois ajouter d'autre sections par exemple, il faudra un autre nom que SECTION. De la même manière tu ne pourras pas avoir une ressource REQ1 dans deux sections différentes, ou ce sera obligatoirement la même (je ne sais pas si je suis très clair la...)

# Re: Affichage élements d'un RDF

Envoyé par : lfournier

Date : 07/03/2007 11:46

OK pour l'unicité des 'rdf:about'. De toute façon l'unicité est vérifiée par un XSD avant que le fichier RDF soit proposé. C'est pour une appli de gestion des exigences et il faut une id unique. http://onedog.homelinux.org:8000/topcase(..)

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.