J'ai essayé deux validateurs de données à mettre à disposition des structures utilisatrices du schéma, et les deux ont leurs problèmes de compatibilité avec certaines versions du JSON Schema. Ces problèmes découlent du fait de faire référence aux JSON Schemas de la spécification GeoJSON au sein de notre schéma : cela permet de s'assurer que le fichier GeoJSON soit valide à tous les niveaux.
J'ai d'abord choisi de passer par des références aux schémas directement sur le site geojson.org, mais cela m'a été déconseillé par des contributeurs du JSON Schema car les implémentations ne gèrent pas toutes ces références distantes. Il est plus robuste de fournir tous les fichiers JSON Schema nécessaires à l'implémentation de manière locale.
Deuxième souci : j'ai rédigé le schéma selon la version 2020-12 de la spécification JSON Schema (la plus récente), mais les schémas GeoJSON sont eux en version draft-07. Cette différence peut ne pas être prise en charge par les validateurs.
Deux fichiers d'essai de validation sont disponibles dans la branche development : ajv.js pour Ajv et validator.py pour Jschon.
rétrograder le schéma itinéraires de randonnée en version draft-07, la version la plus largement utilisée et donc implémentée du JSON Schema, pour s'aligner sur le schéma GeoJSON et permettre une utilisation simple d'Ajv;
réécrire les schémas GeoJSON en version 2019-09 ou 2020-12 pour permettre l'utilisation de Jschon.
Pour des raisons de compatibilité et au vu de la documentation nous avons décidé d'utilser la version draft-07 pour l'écriture de schema : e1de205f0ef29548fb46dc4e65c11c6e071d8033
J'ai essayé deux validateurs de données à mettre à disposition des structures utilisatrices du schéma, et les deux ont leurs problèmes de compatibilité avec certaines versions du JSON Schema. Ces problèmes découlent du fait de faire référence aux JSON Schemas de la spécification GeoJSON au sein de notre schéma : cela permet de s'assurer que le fichier GeoJSON soit valide à tous les niveaux.
J'ai d'abord choisi de passer par des références aux schémas directement sur le site geojson.org, mais cela m'a été déconseillé par des contributeurs du JSON Schema car les implémentations ne gèrent pas toutes ces références distantes. Il est plus robuste de fournir tous les fichiers JSON Schema nécessaires à l'implémentation de manière locale. Deuxième souci : j'ai rédigé le schéma selon la version 2020-12 de la spécification JSON Schema (la plus récente), mais les schémas GeoJSON sont eux en version draft-07. Cette différence peut ne pas être prise en charge par les validateurs.
Deux fichiers d'essai de validation sont disponibles dans la branche
development
:ajv.js
pour Ajv etvalidator.py
pour Jschon.Ajv
Language : JavaScript (Node.js) Avantages :
Inconvénients :
Jschon
Language : Python (>3.8) Avantages :
Inconvénients :
Solution ?
Je vois deux solutions :