Open ArjanLoeffen opened 4 months ago
Joost specificeert ook: https://github.com/networknt/json-schema-validator
Implementatie is compleet. Maar hierbij maak ik gebruik van lokaal opgeslagen metaschema's. Ik heb het complete metaschema voor 2020-12 gevonden (https://github.com/orgs/json-schema-org/discussions/231) maar niet voor 2019-09. En die versie wordt gevolgd in de Best Practices, zie issue #336 .
@joostfarla weet jij waar ik dat schema kan vinden? https://json-schema.org/draft/2019-09/schema is alleen een topstruktuur en dus incompleet als ik die lokaal bewaar.
@ArjanLoeffen je vindt de referenced schema's op de volgende URLs:
Je zou deze files los van elkaar ("as-is" dus) in een folder kunnen plaatsen en de validator kunnen vertellen waar deze gevonden kunnen worden. Platslaan tot 1 file is ook wel mogelijk, maar dat vereist wat handwerk.
Ik heb de schema's zoals genoemd samengevoegd in één gist.json
schema. Dat lijkt te werken. Volgens bronnen op het net is het niet mogelijk json schema's via imports naar elkaar te laten verwijzen; het importeren/includeren kan worden gerealiseerd door een preprocessing stap. Die weg bewandelen we nu nog even niet. Het resultaat van zo'n stap zou een gelijkaardige gist.json worden.
@joostfarla wil jij die gist.json even beoordelen?
@joostfarla wil jij die gist.json even beoordelen?
Dit schema lijkt me in orde zo!
Volgens bronnen op het net is het niet mogelijk json schema's via imports naar elkaar te laten verwijzen; het importeren/includeren kan worden gerealiseerd door een preprocessing stap.
Normaal gesproken worden $ref
verwijzingen door de validator automatisch "geresolved". Als de URIs voorkomen in de definitions ($defs
) kan de validator deze meteen benutten. Indien niet, dan zal hij deze op dat moment proberen op te halen.
Valideer de gegenereerde Json schema's tegen het Json (meta) schema dat daarbij past. Baseer je op de methodiek in https://www.jsonschemavalidator.net/
Meta-schema's zijn:![image](https://github.com/Imvertor/Imvertor-Maven/assets/12828217/9c3279da-5989-4549-9e46-bb0cf4c6727d)
Zie ook #336 - Deze spec gaat uit van https://json-schema.org/draft/2019-09/schema dus die wordt standaard gebruikt voor de validatie van de BP Json schema's. Zorg dat die $schema referentie wordt geactiveerd. Check ook deze StackOverflow discussie en deze (everit schema loader)