Je vous propose de vous montrer pas à pas, petit à petit, le cheminement nécessaire pour la création d'un tel fichier XML.
Comme il me faut un exemple, j'ai décidé de me baser sur un des décodeurs les plus complets du marché, mais déjà existant, à savoir l'ESU Loksound 3.5.
Alors en tout premier lieu, l'éditeur:
Le fichier XML est un fichier avec des marqueurs qui est interprété par le programme DecoderPro. il contient seulement du texte. Tout éditeur de texte est bon. Soit vous connaissez un éditeur de texte XML, soit vous utilisez un éditeur comme Notepad.
XML en deux mots:
XML est un langage structuré qui est marque des éléments par des marqueurs (tag)
Exemple:
- Code: Tout sélectionner
<texte>
Mon premier petit texte XML
</texte>
Un marqueur peut être vide. Il se note alors:
- Code: Tout sélectionner
<texte/>
Un marqueur de début d'élément peut avoir des attributs:
- Code: Tout sélectionner
<texte auteur="XTof">
Mon premier petit texte XML
</texte>
La présentation d'un texte XML n'a pas d'importance pour le programme qui va l'interpréter. Par contre, elle en améliore la lisibilité. Donc, plutôt que de faire:
- Code: Tout sélectionner
<texte auteur="XTof">Mon premier petit texte XML</texte>
Faites:
- Code: Tout sélectionner
<texte auteur="XTof">
Mon premier petit texte XML
</texte>
Lâ structure d'un fichier XML est bien définie. Les régles d'entête, de marquages et de structure sont précises. Comme le fichier va être contrôlé avant d'être importé, il ne faut pas se tromper! Nous verrons ce la à chaque étape de la création d'un fichier de définition d'un décodeur!
Première partie du fichier: l'entête!
- Code: Tout sélectionner
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="../XSLT/decoder.xsl"?>
<!DOCTYPE decoder-config SYSTEM "../DTD/decoder-config.dtd">
<!-- Copyright (C) JMRI 2005 All rights reserved -->
<!-- $Id: ESU_LokSoundXLV3_5.xml,v 1.5 2009/08/30 07:47:17 jacobsen Exp $ -->
<!-- -->
<!-- JMRI is free software; you can redistribute it and/or modify it under -->
<!-- the terms of version 2 of the GNU General Public License as published -->
<!-- by the Free Software Foundation. See the "COPYING" file for a copy -->
<!-- of this license. -->
<!-- -->
<!-- JMRI is distributed in the hope that it will be useful, but WITHOUT -->
<!-- ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -->
<!-- FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -->
<!-- for more details. -->
Que trouvons-nous dans ce header?
Une première ligne nous idiquant la version d'XML. Indispensable, à ne pas modifier.
Une deuxième ligne précisant le style à utiliser pour la présentation du fichier (pour la lecture par une personne. Inutile pour notre usage. Je la supprimerai du fichier.
Une troisième ligne définit le fichier qui décrit la structure que le fichier XML DOIT respecter. Ce sont des règles! Ligne indispensable s'il en est!
Les lignes suivantes sont des commentaires. Elles n'influencent en rien le fichier XML. Je vais les garder par respect pour l'auteur du fichier.
Notre header est donc maintenant:
- Code: Tout sélectionner
<?xml version="1.0"?>
<!DOCTYPE decoder-config SYSTEM "../DTD/decoder-config.dtd">
<!-- Copyright (C) JMRI 2005 All rights reserved -->
<!-- $Id: ESU_LokSoundXLV3_5.xml,v 1.5 2009/08/30 07:47:17 jacobsen Exp $ -->
<!-- -->
<!-- JMRI is free software; you can redistribute it and/or modify it under -->
<!-- the terms of version 2 of the GNU General Public License as published -->
<!-- by the Free Software Foundation. See the "COPYING" file for a copy -->
<!-- of this license. -->
<!-- -->
<!-- JMRI is distributed in the hope that it will be useful, but WITHOUT -->
<!-- ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -->
<!-- FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -->
<!-- for more details. -->