Rapport exercice 8 : XML


Objectifs de l'exercice

Pour ce dernier exercice, j'ai tenu à travailler sur XML, pour toutes les raisons évoquées par le professeur (puissance de cette grammaire, son avenir quasi assuré). A partir de là, mon principal objectif était de me mettre à jour avec ce nouveau langage, c'est-à-dire le comprendre en le testant. En outre, j'avais besoin de comprendre un minimum sa philosophie, puisque le cours staf18 reposait en grande partie sur lui pour tout ce qui concernait la gestion des projets, la remise des travaux et des rapports. Ces deux raisons suffirent à me convaincre de tenter l'aventure XML. Ajoutons à cela que je souhaitais depuis longtemps déjà référencer une collection de bandes dessinées et mon sujet fut tout trouvé.
 

Difficultés rencontrées


Tout ce que je savais au départ, c'était qu'il était possible avec XML de séparer le contenu de la mise en page. A partir des notes de cours, j'ai pu discerné - en théorie - la différence entre le DTD, le fichier.xsl et le fichier.xml proprement dit. 

Avec le DTD, je ne rencontrai pas trop de problème. En tout les cas rien d'insoluble par moi-même (moyennant quelques dizaines de minutes de réflexion). J'utilisai des éléments optionnels et obligatoire, ainsi que des attributs. Peut-être la seule difficulté réelle fut de définir un lien (href) comme attribut de l'élément « a ». Je n'y aurais pas pensé sans l'aide de l'assistante.

Le fichier XML ne me posa pas la moindre difficulté. Il suffisait de l'éditer avec un bon outil (en l'occurrence Xemacs) qui gère quasiment tout. Dès lors il n'y avait plus qu'à remplir correctement les différentes balises.

Là où les vrais soucis commencèrent , ce fut avec le fichier XSL, connu pour gérer la mise en page. Les notes de cours étaient de loin insuffisantes, ou peut-être de loin insuffisamment compréhensibles. Les conseilles de l'assistante furent dans un premier temps salutaires. Ils me permirent de me lancer dans un première version de mon fichier XSL. A la suite de quoi je le testai et bien évidemment, il ne marchait pas. Après quelques heures de réflexion durant lesquelles je changeai un peu près tout ce qu'il était possible de changer, je retrournai demander conseil à l'assistante. Celle-ci corrigea la majorité de mes erreurs et me permit au passage d'apprendre de nouvelles règles. Les dernières erreurs furent corrigées avec le professeur en personne qui lui aussi me permit d'apprendre des choses que j'aurais mis des semaines à découvrir par moi-même.
 

Réflexions et références

Voilà comment se passa mon aventure XML. Celle-ci n'est pourtant pas encore finie. Je souhaite approfondir certains éléments, comme les variables dans le DTD, ou l'intégration d'un tableau dans le fichier XSL, me permettant de faire des mises en page un peu plus élaborées. Je souhaite également développer un formulaire me permettant de générer des nouvelles entrées sans passer par le code. Pourquoi pas également créer une base de données me permettant de trier les albums par titre, auteurs, collections, etc. Bien entendu, tout cela dépasse le cadre de XML, et fait appel à d'autres langages (PHP, MySQL, etc.). L'intérêt est de savoir intégrer le tout dans un système qui est un véritable but, en faisant de ces pages XML, un véritable outil.  J'aurai souhaiter commencer cela pendant l'exercice mais le temps ne me le permis pas.

Pour finir, si je devais donner mon avis sur l'utilité d'une telle grammaire, je dois bien avouer que celui-ci serait mitigé. L'idée de séparer le contenu de la mise en page est tout à fait défendable. Cela semble en effet être un progrès, à tel point que l'on peut se demander pourquoi n'y avait-on pas pensé plus tôt, tellement cela semble évident qu'il faut le faire. Maintenant, en y regardant de plus près, chaque fois que l'on nous donne des exemples sur la puissance d'un tel procédé, on nous parle de carnet d'adresses, de recettes de cuisine, de collection de livres, ou même de rapports de projet… Là les avantages de XML nous sautent au visage. Bien sûr imaginer des recettes de cuisine ayant invariablement la même mise en page, le même découpage ! Lorsqu'on veut changer l'allure d'un titre, il suffit d'éditer un seul fichier (XSL) et le changement se répercutent  sur toutes les recettes ! C'est extraordinairement puissant ! Seulement voilà, sur le réseau, il n'y a pas que des recettes de cuisine, des carnets d'adresse ou même des rapports de projet. Est-il vraiment possible d'imaginer un site commercial, un site pédagogique, un site personnel, un site de n'importe quoi possédant invariablement, sur toutes ses pages, le même découpage et la même mis en page. Bien entendu, il est possible de créer des balises qui ne sont utilisées que dans certaines pages, ce qui permettrait alors d'avoir des variations entres les pages d'un même site. Mais à imaginer que sur chaque page, il y a un élément de la mise en page qui est unique, cela reviendrait à créer autant de variations qu'il y a de pages. Cela reviendrait à faire du HTML, mais en plus compliqué.

Je ne pense pas que cela soit totalement le cas. Je pense même entrevoir quelque chose de vraiment  puissant dans XML, mais il n'empêche que pour cela, il faudrait appliquer cette grammaire à autre chose que des recettes de cuisine et des carnets d'adresses.

 

Home | Staf