139bercy / format-commande-publique

Documentation du format de référence des données essentielles des marchés publics français
The Unlicense
14 stars 11 forks source link

Erreur de définition de tableau probable dans le schéma marché.json #27

Closed arisone closed 4 years ago

arisone commented 6 years ago

La propriété "items" des tableaux "titulaires" et "modifications" est définie avec la notation fournie pour les tableaux hétérogènes, alors que dans le schéma xsd il semble que les éléments doivent être homogènes.

Valeur actuelle: "titulaires": { ... "type": "array", ... "items": [ { "$ref": "#/definitions/Titulaire" } ] }, "modifications": { ... "type": "array", "items": [ { "$ref": "#/definitions/Modification" } ] }

Valeur attendue: "titulaires": { ... "type": "array", ... "items": { "$ref": "#/definitions/Titulaire" } }, "modifications": { ... "type": "array", "items": { "$ref": "#/definitions/Modification" } }

arisone commented 6 years ago

La même erreur potentielle est présente sur toutes les propriétés de type tableau présentes dans les schémas json (par exemple la propriété "concessionnaires").

ColinMaudry commented 6 years ago

Merci beaucoup pour votre retour.

Les deux notations ne sont-elles pas équivalentes en terme de fonctionnalité ? Dit autrement, quels bénéfices y a t-il à adopter une notation d'objet simple, au-delà de rendre l'homogénéité de l'array plus explicite visuellement ?

arisone commented 6 years ago

Hi Colin, they're not the same when you use some tools to generate pojo from json schema or other tools to validate a json against its json schema. If the schema declares that accepts an array with heterogeneous elements I can put everything inside it instead of the expected element. Moreover I think it is desirable that the json schema and the xsd schema declare exactly the same structure otherwise it could be a bit confusing.

NOTE: I'm using this tool jsonschema2pojo

ColinMaudry commented 4 years ago

Done in 77af719. Does it work for you?

Thanks for the pointers.

ColinMaudry commented 4 years ago

Ah, still have to fix it for other arrays.

ColinMaudry commented 4 years ago

Please check here: https://github.com/etalab/format-commande-publique/blob/develop/marches.json