Rapport : Premiers pas avec XML


Objectifs de réalisation et analyse des besoins

Dans le cadre du cours staf12, je travaille sur un projet qui concerne l'étude de l'histoire de l'art à l'université. Lors de l'élaboration de ce projet, j'ai réalisé des entretiens avec des étudiants. Divers aspects intéressants ont été soulevés. Toutefois, deux besoins majeurs ont émergé du discours de mes interlocuteurs. D'une part, les étudiants ressentent la nécessité d'organiser les quantités importantes de contenus donnés. Des centaines de tableaux sont analysés en cours d'année. Lors de la préparation des examens, il s'agit de structurer et compléter ce matériel. D'autre part, les étudiants ont souligné la nécessité de travailler avec des images en couleur. Les avantages de ce choix sont multiples. Non seulement les couleurs aident à la compréhension de l'oeuvre, mais elles favorisent aussi la mémorisation et la reconnaissance des tableaux.

L'exercice 2 Premiers pas avec xml m'offrait une bonne occasion de développer cette idée et de concilier les deux exigences précédemment décrites. Pour la construction de mon dispositif, je me suis donc fixé les objectifs suivants :

En ce qui concerne mes objectifs techniques, je veux apprendre le langage XSLT, comment déclarer et structurer les éléments dans une DTD et, pour finir, continuer mon apprentissage de XEmacs.

Grammaire DTD

Ma DTD devait tenir compte des éléments traités lors de l'analyse d'un tableau. Afin d'être le plus proche possible des exigences réelles du contexte universitaire, je me suis appuyé sur les conseils d'une étudiante en histoire de l'art. Suite à ses remarques, j'ai décidé d'intégrer trois dimensions dans ma grammaire : l'image, les informations de base du tableau et sa description.

Dès lors, la base de ma DTD se composait des éléments suivants :

Information :

Description :

A cette structure s'ajoutaient deux autres éléments : l'image du tableaux et le nom de l'artiste. Les éléments " ol " et " li " complétaient ma grammaire. Ils étaient prévus en vue de la création d'une liste numérotée à l'intérieur de ma page.

Design

La présentation de chaque tableau était divisée en deux parties. Une partie supérieure qui contenait l'image et les informations sur le tableau. Une partie inférieure qui servait à la description de l'oeuvre. Pour l'élaboration du dispositif, je me suis inspiré également des fiches-résumé déjà utilisées par certains étudiants pour la préparation des examens.

Les quatre dimensions de la description sont représentées par des couleurs différentes. En plus de favoriser la distinction visuelle des éléments, ce choix répond à des exigences d'étude. En effet, dans une phase de lecture, l'étudiant pourrait utiliser les mêmes couleurs pour mettre en évidence des parties d'un texte ou de ses propres notes. Par exemple, quand il souligne en bleu, il sait immédiatement qu'il s'agit de l'état de conservation du tableau ; en vert, il identifie les parties concernant l'iconographie, etc.

Commentaires sur la réalisation

Dans un premier temps, je me suis dédié à la construction de ma grammaire. Les différents éléments étant déjà identifiés lors de l'analyse des besoins, cette phase a été assez rapide. D'abord, j'ai dessiné sur papier " l'arbre " de ma DTD. Grâce à ce passage la compréhension de ma grammaire, en particulier l'organisation des divers éléments, a été plus aisée. Ensuite, je suis passé à la déclaration des éléments. Vu que l'organisation des tags était déjà bien établie, je me suis concentré cette fois-ci sur l'écriture : la spécification du contenu d'un élément, l'utilisation d'éléments spéciaux tels que #PCDATA, ANY, EMPTY, les règles A*, A+, etc.

Dans un deuxième temps, je me suis lancé dans la mise en place des multiples transformations XSLT. Transformations qui permettent l'affichage du contenu de mon dispositif. La compréhension de ce langage m'a néanmoins posé quelques difficultés dont je parlerai dans le chapitre suivant.

Pour conclure, j'ai testé mon fichier art.xml avec Xerces-J 2.0.0.

Dans les phases d'élaboration de la DTD et du langage de transformation XSLT, j'ai travaillé toujours avec l'éditeur XEmacs. Etant donné ma pratique lors du premier exercice de STAF14 Présence dans le Cyberespace, je me suis senti assez à l'aise dans l'utilisation de cet éditeur.

Difficultés rencontrées

Pour la DTD.. comme explicité précédemment la définition de ma grammaire ne m'a pas posé des problèmes particuliers. Seul les éléments " image " et " lien " m'ont demandé plus de temps pour comprendre la manière de les déclarer. J'ai du consulter d'autres travaux pour trouver les solutions adéquates.

Pour XSLT.. dans ce cas, le parcours a été plus tortueux. J'ai d'abord analysé les fichiers travaux.dtd et travaux.xsl donnés par Daniel Schneider. La lecture attentive de ces exemples, alimentée par le document Introduction technique à XSLT + XPath et d'autres ressources trouvées dans le Web, a garantit une meilleure compréhension du langage. Au but de quelques tentatives, je suis parvenu à définir les règles principales pour la transformation de mes " noeuds " et de leurs sous-éléments. Néanmoins quelques obstacles résistaient à mes envies. En particulier, je n'arrivais pas à résoudre deux problèmes :

Pour le premier problème, j'ai demandé l'aide de Daniel Schneider. Des cheminements dans mon fichier étaient en effet incorrects. L'accès fourni conduisait directement à "url" et "peintre". Cependant, le chemin exact devait passer par : "lien/url" et "lien/peintre". Or, il fallait indiquer que les éléments " url " et " peintre " se trouvaient à l'intérieur de l'élément " lien ". Le deuxième problème s'est avéré plus ardu. Lors de l'exercice 1 de staf14, j'avais affiché mes pages à l'aide du positionnement CSS. Ce choix m'avait permis d'atteindre les buts fixés. J'ai donc décidé de suivre la même option. Néanmoins, l'utilisation de balises ou de propriétés tel que " div ", " float ", " clear ", etc. dans ma feuille .xsl me confrontait régulièrement à des problèmes d'affichage. En particulier, l'image du tableau étudié et l'arrière-fond de la description n'apparaissaient pas dans la manière désirée. Après plusieurs essais infructueux, j'ai opté pour une autre solution (.. mon but était quand même de créer un produit qui marchait !). J'ai ainsi inséré les éléments de l'analyse d'une oeuvre dans un tableau. Même si cette solution est moins " élégante " et de moins en moins utilisé en informatique, elle a garantit un fonctionnement correct de mon dispositif !

En général, les objectifs fixés au début de ce travail ont été atteints. Même si je suis conscient que du côté XSLT certains aspects m'échappent encore. Et le fait d'abandonner le positionnement CSS prévu est, à mon avis, en relation avec ces difficultés. Ainsi, en vue des prochaines périodes STAF un nouveau but se concrétise immédiatement : améliorer ma connaissance du langage XSLT ! L'apprentissage continue..

Ressources


Dernière modification : 15 janvier 2005 par L.B.
Valid XHTML 1.0! Valid CSS!