Afin d'expliquer comment écrire un fichier XML pour représenter une carte, nous allons nous baser sur l'exemple ci-dessous, qui est
relativement simple mais permettra de montrer toutes les possibilités du fichier XML :

Informations sur la carte
La carte doit être décrite, pour lui donner un nom, et une description. Ceci se fait simplement par le bout XML suivant:
<info>
<name>La mare aux canards</name>
<id>3</id>
<description>Une nouvelle variante en construction</description>
<type>0</type>
</info>
L'élément info regroupe tout ce qui concerne les informations à mettre sur la carte : le nom, la description, ainsi qu'un
identifiant. Le nom et la description sont définis librement. En revanche, l'identifiant sera défini par la personne de diplomatie-online
qui validera et intègrera la variante au site.
Définir une région
Une région est constituée des informations suivantes : un identifiant, un type, un type de terrain, des coordonnées pour les unités,
éventuellement des coordonnées pour le centre.
Prenons comme exemple la définition de la région GAS, qui n'a pas de centre, ni précision de côte :
<region>
<id>GAS</id>
<type>C</type>
<terrain></terrain>
<prec></prec>
<x>131</x>
<y>592</y>
<cx></cx>
<cy></cy>
</region>
L'élement region définit toutes les propriétés d'une region en particulier :
- id : il s'agit de l'identifiant de la région, sur 3 caracètres en majuscules pour une région normale, sur 4 caractères en
majuscule sauf le 1er pour une région de côte. Chaque région définie doit être unique
- type : définit le type de région. Les valeurs possibles sont : C pour côtière, M pour maritime, T pour terrestre, K pour
multi-côtes
- terrain : définit le type de terrain de cette région. Laisser vide si le terrain n'a rien de particulier. Les valeurs possibles
sont : M pour marécage, F pour forêt.
- prec : non utilisé, laisser vide
- x, y : coordonnées x et y où seront placées les unités sur cette région
- cx, cy : coordonnées x et y où sera placé le centre sur cette région. Laisser vide si la région n'a pas de centre.
Prenons maintenant le cas de ESP qui est une région multi-côtes. Pour ces régions particulières, il faut définir en fait 3 régions
distinctes : ESP (région pour les armées), sESP (région pour les flottes sur la côte sud), nESP (région pour les flottes sur la côte
nord). Il faut noter que le premier caractère ("s" ou "n" ici) est libre, et pourrait tout à fait être : "e" pour est, "o" pour ouest, "u" pour
sous-terrain, "c" pour ciel, ... Ce qui est important, c'est que toutes les "sous-régions" d'une même région aient exactement
les mêmes 3 caractères en majuscule (ESP dans notre exemple). Exemple de définition des 3 régions :
<region>
<id>ESP</id><type>K</type><terrain></terrain><prec></prec><x>3</x><y>3</y><cx>23</cx><cy>23</cy>
</region>
<region>
<id>sESP</id><type>C</type><terrain></terrain><prec></prec><x>4</x><y>4</y><cx></cx><cy></cy>
</region>
<region>
<id>nESP</id><type>C</type><terrain></terrain><prec></prec><x>5</x><y>5</y><cx></cx><cy></cy>
</region>
Il faut noter que dans ce cas-là, seul ESP est de type K (multi-cotes) et contient les coordonnées du centre.
Définir des frontières
Une frontière définit en fait un accès d'une région à une autre, pour un certain type d'unité et un certain type d'ordre. Comme une
frontière n'est pas nécessairement bijective, les frontières sont définies au sein de l'élément region, et indiquent pour
une région quelles sont les régions accessibles. Il est possible de regrouper les régions atteignables par type d'accès. Un accès est
constitué de :
- une liste de régions : liste de noms de régions (identifiants) séparés par des virgules qui sont accessibles
- une liste de types d'unités : liste de types d'unités ("A" pour armée, "F" pour flotte) séparés par des virgules, qui indiquent
les types d'unités autorisés à utiliser cet accès
- une liste d'ordres : liste des ordres ("-" pour attaque, "S" pour soutien, "C" pour convoi) qui indique les ordres autorisés
sur cet accès
Maintenant prenons un premier exemple simple : déclarer les frontières de PAR. Toutes les régions accessibles depuis PAR ne le sont
que pour des armées, et pour tout type d'ordre excepté convoi (ce qui n'est de toute façon pas possible car PAR est forcément occupé
par une armée). Cela donnerait en XML:
<access>
<regions>PIC,BRE,BOU,GAS</regions>
<unit>A</unit>
<order>S,-</order>
</access>
On peut définir toutes les frontières d'un coup, car elles ont toutes les mêmes contraintes : accessibles uniquement aux armées, pour
les ordres S et -.
Prenons maintenant le cas de GAS. Une armée en GAS peut aller en ESP, mais une flotte en GAS ne peut aller qu'en nESP. De même,
une armée pourra atteindre les régions intérieures, contrairement aux flottes. Par contre, une armée ou une flotte
sont autorisées à soutenir une unité se trouvant en ESP, sESP ou nESP. Cela donnerait en XML :
<access>
<regions>ATL,nESP</regions>
<unit>F</unit>
<order>S,C,-</order>
</access>
<access>
<regions>BRE</regions>
<unit>A,F</unit>
<order>S,-</order>
</access>
<access>
<regions>PAR,TOU,BOU,ESP</regions>
<unit>A</unit>
<order>S,C,-</order>
</access>
<access>
<regions>ESP,nESP,sESP</regions>
<unit>A,F</unit>
<order>S</order>
</access>
Il faut rappeler que tous ces access sont définis au niveau de la région GAS et ne s'appliquent donc qu'à cette région.
Cela signifie qu'une région définie ici ne concerne que les mouvements partant de GAS. Pour les mouvements vers GAS, tout est défini dans
chacune des régions frontalières.
Exemple complet
Pour un exemple complet, voici le fichier correspondant à la déclaration complète de la carte classique :
-- Télécharger le fichier