Comment utiliser un arbre avec RDF stocké sur un serveur distant ?

Écrit par Neil Deakin. Traduit par Alain B. (17/07/2005).
Page originale : http://www.xulplanet.com/tutorials/xulqa/q_remoterdf.html xulplanet.com

Vous pouvez utiliser des arbres avec une source de données RDF distantes de la même manière qu'une source RDF non distante.

La plupart des gens qui rencontrent un problème voient généralement les en-têtes de colonnes de l'arbre, mais le corps de l'arbre est vide. Il y a plusieurs choses à faire pour résoudre ce problème.

Tout d'abord, assurez vous que l'attribut datasources est défini avec la bonne URL. Il peut s'agir soit d'une URL relative qui sera résolue relativement au fichier XUL, soit d'un chemin absolu sur le même serveur que le fichier XUL. RDF ne peut pas être chargé à partir d'un hôte différent que le fichier XUL (c'est d'ailleurs le cas pour la plupart des types de fichiers). Les fichiers XUL installés dans le chrome n'ont pas de restrictions sur l'origine de chargement des RDF.

Assurez vous que le fichier RDF est transmis avec le type mime correct. Mozilla accepte text/rdf, text/xml ou application/xml. Mozilla ne supporte pas actuellement l'envoi de RDF au format application/rdf+xml. Essayez de charger le fichier RDF en tapant son adresse URL dans la barre d'adresses de Mozilla. Si le serveur affiche le contenu comme étant du XML, c'est que le serveur est configuré pour transmettre le bon type mime. Vous pouvez consulter la boîte de dialogue sur l'information de la page pour en être certain.

Il est très utile de visualiser le fichier RDF en tapant directement son URL dans la barre d'adresse afin de s'assurer qu'il ne contienne pas d'erreurs. Il serait évident que dans ce cas, une erreur apparaîtrait dans le RDF.

Vous pouvez également essayer de renommer le fichier RDF pour qu'il ait une extension .xml, et de mettre à jour votre fichier XUL en conséquence.

Mozilla met en cache les données RDF à moins que la source de données ne soit pas utilisée, que Mozilla soit redémarré, ou que vous appeliez la fonction de rafraîchissement de la source de données. Ainsi, vous découvrirez qu'il vous faudra redémarrer Mozilla pour voir si les changements que vous avez fait ont un effet. Ce n'est probablement pas le cas avec des RDF non-chrome car ils seront déchargés lorsque le XUL est déchargé.

Assurez vous que l'élément tree soit flexible. Il vous suffit d'ajouter un attribut flex sur cet élément. Vous pouvez également définir une largeur et une hauteur à l'arbre.

L'exemple suivant montre le fonctionnement d'une source RDF distante (RDF file).

Voir
<?xml version="1.0" encoding="ISO-8859-1"?>

<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>

<window id="treeRDF" title="Arbre RDF"
        xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">

<label value="Les choses dans ma maison :"/>

<tree flex="1" width="350" height="200"
      datasources="things.rdf" ref="urn:things:root">

  <treecols>
    <treecol id="name" label="Nom" primary="true" flex="1"/>
    <treecol id="material" label="Matériel" flex="1"/>
  </treecols>

  <template>
    <treechildren>
      <treeitem uri="rdf:*">
        <treerow>
          <treecell label="rdf:http://www.xulplanet.com/rdf/example#name"/>
          <treecell label="rdf:http://www.xulplanet.com/rdf/example#material"/>
        </treerow>
      </treeitem>
    </treechildren>
  </template>
</tree>

</window>

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.