FR:JOSM file format
Le format de fichier JOSM, le format de base utilisé par JOSM, ressemble beaucoup au résultat d'une requête bbox depuis le serveur avec juste quelques ajouts mineurs.
Notez que c'est à la fois un format de stockage et un format de fichier de changements. Ainsi, en plus de pouvoir sauvegarder les données téléchargées depuis le serveur, il permet aussi de sauvegarder les changements apportés depuis par l'utilisateur.
Exemple
<?xml version='1.0' encoding='UTF-8'?>
<osm version='0.4' generator='JOSM'>
<bound box='52.002540501956155,4.341671814164718,52.02533006290631,4.374151424652737' origin='http://www.openstreetmap.org/api/0.4' />
<node id='350485' timestamp='2005-12-24 17:40:15' visible='true' lat='52.0088411414041' lon='4.34174776077271' action="modify" />
<node id='-1' timestamp='2006-12-25 17:14:03' user='kleptog' visible='true' lat='52.0116274960527' lon='4.36197113456427'>
<tag k='created_by' v='JOSM' />
</node>
</osm>
Le format est très similaire à la réponse venant du serveur, avec quelquels petites différences:
- ajout d'un tag bound qui montre les limites du carré téléchargé qui a généré ces données (si connu). Il y a en plus le tag origin qui indique le nom du serveur qui a fournit ces données.
- Les entités peuvent avoir un tag action qui peut avoir l'une des valeurs suivantes: modify ou delete. Le tag modify indique que l'on remplace la précédente version de cette entité.
- La création d'un nouvel élément est indiqué par l'utilisation d'un ID négatif. Cet ID négatif sert aussi de paramètre fictif qui peut être utilisé pour référencer des objets dépendants dans un autre endroit du fichier.
Contrairement à d'autres formats de fichiers de changements, les entités sont classées par type plutôt que par l'ordre réel des changements. Le fichier obtenu est cohérent par lui-même, il sera donc toujours possible de réorganiser les changements de telle manière que l'intégrité référentielle soit préservée.