nat's homepage <<


, étudiante STAF (tecfa), année « Kiah »
màj : 16 janvier 2005
Valid XHTML 1.0 | Valid CSS

mes travaux @ tecfa >> rapport deuxième période

Objectifs

J'ai voulu créer un DTD et une feuille de transformation XSLT pour afficher une bibliographie aux normes de l'APA. Les normes de l'APA représentent un standard utilisé un sciences sociales pour écrire un article scientifique. Mon idée en développant ce dispositif a été de simplifier cette démarche qui est souvent bien fastidieuse, surtout les premières fois.

Analyse des besoins

Pour afficher une bibliographie aux normes de l'APA, il faut non seulement que tous les éléments soient présents, mais également qu'ils soient affichés selon une forme et dans un ordre standards. C'est pourquoi j'ai utilisé XSLT plutôt que CSS pour afficher mon contenu XML.

Design

Je n'ai pas énormément travaillé le design car mon idée avec ce travail est de donner un outil à ceux et celles qui en ont besoin. Au-delà de la forme et du contenu qui sont prédéfinis de façon très stricte, le design est le seul élément personnalisable. C'est pourquoi j'ai introduit un commentaire, <!-- use your own style ! -->, dans le head du fichier XSLT, en plus d'un style de base avec ma police et une marge au body.

Commentaires sur la réalisation

Contenu du DTD

J'ai d'abord regardé quelques sites web pour me souvenir des détails quant aux normes de l'APA, notamment celui-ci et celui-là. J'avais également quelques notions accumulées lors des années précédentes. Je voulais que le DTD soit le plus complet possible tout en restant simple à utiliser.
Pour nommer mes balises, j'ai opté pour l'anglais puisque l'APA est une association anglophone, tout en laissant le choix avec un attribut de choisir le français ou l'anglais pour l'affichage des quelques éléments fixes de la bibliographie.

Forme du DTD

J'ai eu quelques difficultés à ce niveau là qui m'ont surtout fait perdre beaucoup de temps. J'ai souvent tendance à me lancer, à essayer des trucs, avant de lire complètement la théorie. J'ai fais ma première version en regardant le support de cours de temps en temps, mais dans l'ensemble plutôt au « feeling ».
Dans l'ensemble mon DTD était correct mais j'ai commis une grosse erreur qui m'a poussé à en faire une seconde. Je m'explique.
Mon XML s'affichait mais il y avait des erreurs lorsque je le passais au validateur. Cela provenait du fait que j'avais déclaré plusieurs fois les mêmes éléments : pour chaque élément parent, j'avais redéclaré les mêmes éléments enfants. Ainsi, dans mon DTD, j'avais plusieurs author, plusieurs date, etc...
J'ai d'abord pensé que je devais donner un nom différent à chacun de ces éléments et je l'ai fait... Comme j'avais déjà écris ma feuille de transformation XSLT j'ai également dû tout modifier à ce niveau-là. Après cela, le dispositif fonctionnait et était valide.
Mais je me suis aperçue ensuite de la véritable cause des erreurs et de l'inutilité de renomer tous mes éléments. J'avais envie d'avoir un code léger et simple donc j'ai refais le travail inverse dans mon DTD et ma feuille de transformation XSLT.
J'ai donc utilisé beaucoup de temps à cause de cette erreur mais elle m'a permis de bien apprendre comment fonctionne un DTD. Je suis sûre que je ne referais plus ce genre d'erreurs...

XSLT

J'avais des idées de fonctionnalités à implémenter que je n'ai finalement pas eu le temps de mettre en place, mais je suis quand même contente du résultat final. Il manque cependant des éléments pour que l'affichage soit complètement aux normes de l'APA :

Certaines erreurs APA sont volontairement visibles dans mon fichier XML.

Les fonctionnalités que j'ai mises en place m'ont pris un certain temps, notamment l'affichage de la première lettre du prénom uniquement, suivie d'un point. J'ai regardé sur le web mais je ne trouvais pas comment m'y prendre au niveau de la syntaxe. J'ai essayé plus d'une heure et finalement je me suis résignée à demander de l'aide à D.K.S. qui m'a prêté deux livres sur XSLT [1]. Cela m'a permis de trouver la syntaxe correcte à utiliser.

J'ai également fait en sorte que, pour les auteurs, des virgules s'affichent avant le deuxième élément et les suivants et qu'un & s'affiche avant le dernier élément de la liste.

J'ai aussi permis à l'utilisateur du dispositif d'afficher sa bilbiographie en anglais ou en français (le choix est obligatoire ainsi que quelques éléments comme l'auteur de la bibliographie, le thème...). Très peu d'éléments sont touchés mais cela me semblait utile quand même.

Ormis ces quelques exeptions, ma feuille XSLT est principalement composée de balises apply-templates et value-of, que j'avais eu l'occasion de voir déjà un peu avec le premier exercice staf14. Par contre je ne sais pas trop dans quelle mesure j'aurais mieux fait d'utiliser des value-of ou si j'ai bien fait d'utiliser des apply-templates la majorité des fois. Je comprend à quoi servent chacune des méthodes mais dans le cas où, comme dans cette feuille XSLT, j'appelle chacun des éléments séparement, je ne vois pas si une méthode est préférable à l'autre (question qu'il faudra d'ailleurs que je pense à poser...).

Notes

1 Tidwell, D. (2001). XSLT : Mastering XML Transformations. USA : O'REILLY & Mangano, S. (2003). XSLT Cookbook : Solutions and Examples for XML and XSLT Developers. USA : O'REILLY.