Forums : Template et RDF

Aller à la discussion :  Plus récente Plus ancienne

# rdf récalcitrant, débutant

Envoyé par : trblft

Date : 10/04/2008 12:04

Bonjour à tous, Après avoir glané presque toutes les pages sur RDF et Xul, je n'arrive toujours pas à faire apparaître mes données dans un arbre. Voici le code source de mon fichier rdf :

<?xml version="1.0" encoding="utf-8"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns# "xmlns:row="http://localhost/progressio/rdf#">
<rdf:Seq rdf:about="http://localhost/progressio/rdf/categories/categories_1">
<rdf:li rdf:resource="/rdf/etablissements/etablissements_1" ></rdf:li>
<rdf:li rdf:resource="/rdf/etablissements/etablissements_2" ></rdf:li>
<rdf:li rdf:resource="/rdf/etablissements/etablissements_3" ></rdf:li>
<rdf:li rdf:resource="/rdf/etablissements/etablissements_4" ></rdf:li>
</rdf:Seq>
<rdf:Description rdf:about="http://localhost/progressio/rdf/categories/categories_1" row:display="coll&#65533;ge(secondaire)" row:id="1"/>
<rdf:Description rdf:about="/rdf/etablissements/etablissements_1" row:display="Mantes-la-Jolie-Paul C&#65533;zanne" row:id="1"/>
<rdf:Description rdf:about="/rdf/etablissements/etablissements_2" row:display="Mantes-la-Jolie-Georges Cl&#65533;menceau" row:id="2"/>
<rdf:Description rdf:about="/rdf/etablissements/etablissements_3" row:display="mo-mo" row:id="3"/>
<rdf:Description rdf:about="/rdf/etablissements/etablissements_4" row:display="Mantes-la-Jolie-Paul Cézanne" row:id="4"/>
</rdf:RDF>

Quand je passe ce fichier dans le validateur rdf du w3c, voilà la réponse : http://trblft.free.fr/validator.html Ceci me laisse penser que l'erreur n'est pas dans le fichier rdf, qu'en pensez-vous?

et voici l'extrait de code de l'arbre, qui s'affiche bien, dans le fichier xul, mais vide, aucune ligne :

<tree flex="1" width="200" height="200" datasources="exemple.rdf"
ref="http://localhost/progressio/rdf/categories_1"
flags="dont-build-content">
<treecols>
<treecol id="name" label="Nom" primary="true" flex="1"/>
 </treecols>
 <template>
   <rule>
     <treechildren>
      <treeitem uri="rdf:*">
        <treerow>
          <treecell label="rdf:http://localhost/progressio/rdf#display"/>
        </treerow>
      </treeitem>
     </treechildren>
   </rule>
 </template>
</tree>

ça fait 24h que je cherche l'erreur et je ne vois toujours pas, si un oeil neuf peut me dire ce qui ne va pas. Merci au passage à tous les rédacteurs du site, sans toutes ces pages j'aurai biassé les bras depuis longtemps.

J'ai testé le code sous FF2, FF3 beta 5 et Prism 0.9, mais le résultat est le même.

# Re: rdf récalcitrant, débutant

Envoyé par : Anon

Date : 10/04/2008 17:03

Voici la solution :

<tree  width="200" height="200" datasources="exemple.rdf" ref="pro:all" flags="dont-build-content" >
<treecols>
<treecol id="name" label="Nom" primary="true" flex="1"/>
 </treecols>
 <template>
   <rule>
     <treechildren>
      <treeitem uri="rdf:*">
        <treerow>
          <treecell label="rdf:pro:rdf#display"/>
        </treerow>
      </treeitem>
     </treechildren>
   </rule>
 </template>
</tree>

et le fichier exemple :

<?xml version="1.0" encoding="utf-8"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:row="pro:rdf#">
<rdf:Description rdf:about="pro:categories_1" row:display="coll&#65533;ge(secondaire)" row:id="1"/>
<rdf:Description rdf:about="pro:etablissements_1" row:display="Mantes-la-Jolie-Paul C&#65533;zanne" row:id="1"/>
<rdf:Description rdf:about="pro:etablissements_2" row:display="Mantes-la-Jolie-Georges Cl&#65533;menceau" row:id="2"/>
<rdf:Description rdf:about="pro:etablissements_3" row:display="mo-mo" row:id="3"/>
<rdf:Description rdf:about="pro:etablissements_4" row:display="Mantes-la-Jolie-Paul Conne" row:id="4"/>
<rdf:Seq rdf:about="pro:all">
   <rdf:li rdf:resource="pro:categories_1">
   <rdf:Seq rdf:about="pro:categories_1">
       <rdf:li rdf:resource="pro:etablissements_1" />
       <rdf:li rdf:resource="pro:etablissements_2" />
       <rdf:li rdf:resource="pro:etablissements_3" />
       <rdf:li rdf:resource="pro:etablissements_4" />
   </rdf:Seq>
   </rdf:li>
</rdf:Seq>
</rdf:RDF>

Comme tu peux le voir j'utilise des entête rdf plus simple du type 'pro:' plutôt que 'http://localhost/progressio/'. C'est principalement par soucis de lisibilité ( pour moi ).Je ne sais pas l'impact sur le parser rdf, mais en tout cas ça fonctionne.

tu peux utiliser la ref actuel ou aussi celle-ci : pro:categories_1 ou là tu n'aura que les établissement et plus les catégories.

# Re: rdf récalcitrant, débutant

Envoyé par : trblft

Date : 10/04/2008 18:37

RAAAAAHHHH! Merci. ça marche, plus qu'à trouver ce qui ne va pas avec le php. La version que tu donnes fonctionne effectivement sous firefox 3, or c'est celui qui m'intéresse, j'ai pas testé sous les autres mais ça doit marcher aussi.

J'étais pas si loin mais y'avait quand même la grosse erreur de ne pas mettre un rdf:li pour faire apparaître la première ligne "pro:categories_1".

Là ou c'est génial, c'est que j'ai déjà le scirpt php qui génère ce RDF pour plein d'objets différents, et c'est effectivement beaucoup plus lisible avec un tag qui ne soit pas une url, merci infiniment.

# Re: rdf récalcitrant, débutant

Envoyé par : hhf

Date : 18/05/2008 13:01

j'apporte ma contribution meme si cette version fonctionne.
Je te conseille de mettre tes données dans des content de balise avec des CDATA plutot que dans des attributs. Ceci pour eviter que si une de tes données contient des caracteres à la con, tu n'est pas besoin de les remplacer.

C'est les resources que tu dois modifier :

  <rdf:RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:row="pro:rdf#"
    xmlns:nc="http://home.netscape.com/NC-rdf#">
  
  ...
  
  <rdf:Description rdf:about="pro:etablissements_2">
    <row:display><![CDATA[Mantes-la-Jolie-Georges Clémenceau]]></row:display>
    <row:id nc:parseType="Integer">2</row:id>
  </rdf:Description>

De plus note qu'avec cette écriture, tu peux rajouter un attribut parseType pour spécifié le type de la donnée et ainsi te permettre de faire du tri dessus. Par defaut ca tri sur les carracteres, mais tu peux forcer le tri sur des Integer comme ici ou sur des Date.

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.