La norme XML

Cette rubrique est dédiée à la norme XML. Nous ne rentrerons néanmoins pas dans le détail et la présentation sera très synthétique. Le but ou la finalité est de vous montrer comment utiliser cette norme pour stocker et charger des parties d'échecs.

Quid du XML ? XML, grand frère du SGML, est une norme permettant d'une part de structurer des données et d'autre part de rendre le traitement et la consultation de ces données indépendant du support sur lequel elles se trouvent. En d'autre terme, la norme XML permet de pouvoir lire, consulter, gérer des informations ou données sans se soucier de la plateforme (Windows, Unix,...) sur laquelle ces données sont stockées.

Le consortium W3C est une organisation internationale responsable de la définition et de la maintenance du langage HTML. Ce groupe a aussi en charge l'écriture de la norme XML.

4 éléments de base constituent les piliers du XML :

  1. Les fichiers de description des données : les fichiers DTD (Document Type Definition)
  2. Les fichiers de stockage des données : les fichiers XML (eXtensible Markup Language)
  3. Les fichiers permettant de lire ces données au format HTML : les fichiers XSL (eXtensible Stylesheet Language)
  4. Les outils permettant de gérer des fichiers de données XML : Les "parsers"

Question  : comment rendre pérenne un fichier de données pour qu'il puisse être relu dans 150 ans ?
Réponse  : en utilisant une représentation XML de ces données et en s'appuyant sur un fichier DTD qui décrit ces dernières.

En fait, vous allez découvrir que les fichiers de type XML sont ni plus ni moins que des fichiers TEXTE (ASCII) structurés et balisés, un peu comme le format JSON utilisé aujourd'hui..

Exemple de fichier de parties en XML :

La différence fondamentale entre les fichiers de type HTML et XML réside dans le fait que ces derniers possèdent des balises totalement spécifiques alors que les fichiers HTML répondent à des règles grammaticales précises. Ainsi, toutes les balises proposées dans le fichier XML montré en exemple sont spécifiques au type de données qui nous intéressent.

Structure d'un fichier XML

Un fichier XML est composé de 2 parties : la partie "entête" qui fixe la norme ISO utilisée et qui précise la DTD associée et la partie constitués d'éléments hiérarchiques repérés par des balises. Néanmoins, la référence à un fichier DTD n'est pas obligatoire mais permet de constituer un fichier XML bien formé. Exemple :

L'encodage correspond au jeu de caractère utilisé. Ici, ISO-8859-1 correspond au jeu latin-1 occidental - Les accentués seront pris en compte. Une donnée est représentée entre deux balises. Une balise ouvrante <nom_de_la_balise> et une balise fermante </nom_de_la_balise>. Une donnée vide est représentée par <nom_de_la_balise/>. L'élément racine est l'élément de base de l'arbre. Dans le cas des d'échecs, la balise <GAME> démarre la description d'une partie. La balise </GAME> finit la description.

Description d'un partie codée en XML

Liste des balises utilisées
BalisesExplication
LISTBalise de début de liste
GAMEDébut de description d'une partie
EVENTBalise précisant l'événement
SITESite de l'événement
DATEDate de la rencontre YYYY.MM.JJ
ROUNDNuméro de la ronde
WHITEJoueur Blanc
BLACKJoueur Noir
RESULTRésultat de la partie
WHITEELOClassement ELO du joueur des Blancs
BLACKELOClassement ELO du joueur des Noirs
ECOCode ECO de l'ouverture
VARIATIONVariation de l'ouverture
OPENINGDescription de l'ouverture
COMMENTCommentaire sur la partie
MOVEListe des coups de la partie (format PGN)

Plusieurs parties peuvent être stockées dans le même fichier XML. Une partie commence par <GAME> et finit par la balise </GAME>

Outils pour lire un fichier XML

Il y a plusieurs méthodes pour "attaquer" un fichier de type XML. Soit par l'utilisation d'un logiciel navigateur (browser) de version récente soit par programmation en utilisant des bibliothèques spécifiques comme MSXML.DLL de Microsoft (par exemple) permettant de naviguer à travers les "noeuds" des fichiers XML.

A partir de TchecMeet, comment ca marche ?

Le principe est d'utiliser les fichiers XML pour stocker des parties d'échecs et de les charger en mémoire SANS LES TELECHARGER préalablement sur le disque dur de votre PC. Ainsi, des milliers de parties peuvent être stockées sur différents serveurs WEB et être accessible immédiatement au travers de votre logiciel tchecMeet grâce à leur URL. Le menu "Partie" de TchecMeet propose à partir de la version 1.4, la rubrique "Charger une partie par son URL". Le principe est simple : lorsque vous cliquez sur cette option, une fenêtre apparaît :

Le bouton "Charger le fichier d'URL" permet de charger dans la liste déroulante le contenu d'un fichier texte composé d'adresses URL de parties. Le fichier "url.txt" compris dans le package à partir de la version 1.4 contient des adresses de parties.

La sélection d'une URL puis un clique sur le bouton "Charger une partie" déclenche la connexion au site distant et le chargement de la partie correspondante en mémoire !

Vous pouvez aussi saisir une URL directement dans la zone "URL d'une partie :" et cliquez sur le bouton pour charger la partie.

D'autre fichiers d'URL pourraient être constitués et accessible sur d'autres sites... Avis aux amateurs !!

Voilà c'est tout... :-)