staf 14 Retour à la page travaux





Rapport de l'exercice 5


Ce quatrième exercice consiste à réaliser une page en XML.






 
Objectif

Mon objectif, pour cet exercice, est de comprendre le langage XML ! Ayant entendu mon professeur faire l'éloge de ce nouveau langage, je me suis fixé comme objectif personnel de maîtriser ce langage. Je m'en fiche un peu de l'idée de départ. Ce que je veux, c'est comprendre les liens entre les 3 différents fichiers DTD, SXML, XSL, ainsi que leur philosophie.

Je pense donc reprendre l'exemple sur le carnet d'adresses donné durant le cours. (19.02.01)

Ayant réalisé mon exercice XML, c'est-à-dire mon carnet d'adresses et ayant compris la logique de ce langage, je me suis dit qu'il serait pratique d'avoir un formulaire permettant aux gens d'envoyer leurs coordonnées. (1.03.01)

 

 

 
Difficultés rencontrées

Au début, j'avais beaucoup de peine à comprendre l'utilité du langage XML. Je ne parvenais pas à voir ce qu'il pouvait apporter de plus que HTML. J'avais bien compris que le principal avantage de ce langage était de pouvoir séparer la forme du contenu, mais on peut très bien faire la même chose avec HTML et les feuilles de style. Alors je ne voyais pas l'intérêt de ce langage. Pour moi, c'était "comment faire compliqué quand on peut faire simple ?"

J'ai commencé par réaliser le DTD. Au début je ne comprenais pas vraiment la différence entre les attributs et les éléments. Je suis donc aller voir Kaspar qui m'a expliqué que les attributs sont des caractérisations des éléments et, donc, qu'un élément peut avoir des enfants alors qu'un attribut non.

Sinon, j'ai eu une difficulté avec les déclarations d'éléments, plus précisément, avec les "spécifications de contenu", car dans l'exemple donné dans l'article de avril 2000 de "Programmez !", il ne mettent pas entre parenthèses les #PCDATA, alors qu'elles sont absolument nécessaires. Cette petite mésaventure m'a en outre permis de tester la rigueur de ce langage.

Quant au fichier SXML, il ne m'a pas posé de problème particulier. Il suffisait de faire attention aux emboîtements et à la déclaration :

<?xml version="1.0" encoding="ISO-8859-1" ?>
<?xml-stylesheet href="carna.xsl" type="text/xsl"?>
<?cocoon-process type="xslt"?>

<!DOCTYPE carnet SYSTEM "carna.dtd">

Par contre, la feuille de style XSL m'a donné davantage de difficultés. Je me suis rendu compte que ce n'était pas très facile de gérer un tableau avec les feuilles de style et de faire afficher des données dans les cellules. J'ai, entre autres, eu un gros problème pour afficher les photos (img src). Je suis allé voir Viviane avec qui nous avons essayé de localiser le problème, mais tout semblait correcte. En fait, j'ai découvert qu'il y a chaque fois plusieurs possibilités d'afficher les données et certaines conviennent mieux que d'autres.

J'ai aussi eu de la peine à saisir la différence entre les modes d'affichage :

<xsl:apply-templates select="." />

et

<xsl:value-of select="." />

J'ai en fait compris que le <xsl:value-of select="." /> affiche directement l'élément qu'on lui demande et pas l'enfant d'un parent comme c'est le cas avec <xsl:apply-templates select="." />.

Mis à part ces difficultés dues au langage XML à proprement parlé, j'ai eu une difficulté avec Netscape 6 qui, un jour, ne prenait pas en compte les changements effectués dans ma feuille de style, ce qui, d'ailleurs, a beaucoup surpris Kaspar, qui a reconnu que, dans certains cas, somme toute très rares, il pouvait y avoir du voodoo... :-)

 

 
 
Réflexions et références

Une fois que j'en avais terminé avec ces difficultés, et que j'ai commencé à rajouter du texte - c'est-à-dire rentrer des données - dans mon fichier SXML, j'ai réalisé la force de ce langage et le côté pratique de la séparation entre le contenu et la mise en page. Aussi me suis-je dit que ce qui serait vraiment génial, c'est d'avoir la possibilité de remplir un formulaire qui inscrit directement les nouvelles coordonnées dans mon carnet d'adresses. Je me suis renseigner un peu autour de moi et Roberto Ortelli m'a dit qu'il avait vu un script PHP chez Olivier Clavel qui permettait d'ouvrir le fichier SXML et d'y inscrire des données et même les tags.
Je me suis donc largement inspiré de ce script et j'ai donc pu réaliser mon idée.

Le gros inconvénient de ce procédé, qui, dans l'idéal, devrait se faire avec une base de donnée MYSQL, est que, une fois le formulaire rempli et envoyé, les permissions pour modifier le fichier SXML et le sauvegarder disparaissent et je dois chaque fois les réactiver via FTP Expert. Cela limite donc considérablement la fonctionnalité et l'utilité de mon formulaire. J'aimerais bien trouver une solution à ce problème sans passer par MYSQL (vu que je n'ai pas encore appris ce langage), mais Kaspar m'a dit qu'il n'y avait rien à faire... snif... :-(

 

 
 
 
 
 
 
staf 14 Retour à la page travaux