PnX-SI / schema_randonnee

JSON Schema standardisant la publication des itinéraires de randonnée
Other
6 stars 3 forks source link

Compatibilité validateurs / version JSON Schema #4

Closed IdrissaD closed 3 years ago

IdrissaD commented 3 years ago

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.

Ajv

Language : JavaScript (Node.js) Avantages :

Inconvénients :

Jschon

Language : Python (>3.8) Avantages :

Inconvénients :

Solution ?

Je vois deux solutions :

amandine-sahl commented 3 years ago

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