|
English version
Le XML est appelé, avec raison, le code ASCII du futur. En fait, c'est un langage qui permet de décrire des structures de données, puis de représenter ces données elles-mêmes. Et comme tout s'écrit en ASCII, c'est compatible entre toutes les plate-formes informatiques possibles, une vraie bénédiction.
J'ai réalisé sur ce site un exemple d'utilisation du XML, "La conjugaison espagnole". Il s'agit d'une petite application, qui permet de choisir un verbe espagnol dans un liste, puis d'essayer de le conjuguer. L'application corrige ensuite la conjugaison. On peut aussi se contenter de juste afficher la conjugaison.
L'application s'appuie sur deux fichier XML. Le premier contient la liste des verbes. La structure de données permet de définir l'infinitif du verbe, sa racine, s'il est réfléchi ou pas et son type de conjugaison. Ce fichier se présente ainsi:
<?xml version="1.0" encoding="iso-8859-1"?>
<dictionary>
<verb reflexive="yes">
<infinitive>acostarse</infinitive>
<root>acost</root>
<termination>regular1</termination>
</verb>
<verb reflexive="no">
<infinitive>beber</infinitive>
<root>beb</root>
<termination>regular3</termination>
</verb>
<verb reflexive="no">
...
</verb>
</dictionary>
Sa structure étant très simple, il aurait aussi pu se présenter ainsi, avec les informations sous forme d'attributs plutôt que d'éléments:
<?xml version="1.0" encoding="iso-8859-1"?>
<dictionary>
<verb reflexive="yes" infinitive="acostarse" root="acost" termination="regular1" />
<verb reflexive="no" infinitive="beber" root="beb" termination="regular3" />
<verb ... />
</dictionary>
Le fichier de conjugaison, quant à lui, est une liste des différentes conjugaisons possibles, pour tous les temps possibles (le fichier est très loin d'être complet pour le moment, je ne fais que débuter en espagnol; en fait, pour les temps, il n'y a que le présent de l'indicatif pour le moment). Le fichier se présente ainsi:
<?xml version="1.0" encoding="iso-8859-1"?>
<terminations>
<conjugation name="regular1">
<tense name="presente de indicativo">
<single1>o</single1>
<single2>as</single2>
<single3>a</single3>
<plural1>amos</plural1>
<plural2>áis</plural2>
<plural3>an</plural3>
</tense>
</conjugation>
<conjugation name="regular2">
...
</conjugation>
</terminations>
Ces fichiers XML sont lus avec les fonctions mises à disposition par PHP. Dans la première page, je ne relève que les éléments <verb> et les affiche sous forme de liste déroulante. Le test de conjugaison est plus complexe: il s'agit d'abord de retrouver, dans la liste des verbes, le verbe choisi sur la première page et de récupérer toutes les informations qui le concernent. Connaissant sa conjugaison, je l'extraie alors de la liste des conjugaisons et j'affiche tous les temps sur la page. Les terminaisons sont remplacées par des champs texte, afin de permettre à l'utilisateur de les saisir. Lorsque l'on appuie sur le bouton "Tester", la page se recharge et recommence le processus de recherche décrit précédemment, mais cette fois l'affichage change: pour le temps qui a été testé, les terminaisons saisies par l'utilisateur sont comparées avec celles de la liste des conjugaisons. Les bonnes réponses sont affichées en vert, les fausses en rouge, avec les terminaisons correctes à côté.
La page qui affiche simplement la conjugaison, sans test, fonctionne de la même manière, mais sans formulaire de saisie.
|