Open ArjanLoeffen opened 1 year ago
Json schema's komen op twee plekken terug in Imvertor resultaten.
createjsonschema
(de "Kadaster" methode). Zie voorbeelden
Fietsenwinkel.zip (voorbeeld uit Primer) en IMVB.ZIP (testmodel met alle constructs)Ter vergelijking: ShapeChange resultaten voor de voorbeeld modellen zijn hier: Shapechange.zip. Een vergelijking van dit formaat met de Kadaster methode staat hier: SC-IMV-analyse.docx. ShapeChange test repository issues vind je hier.
Op dit moment wordt Json schema via EP gegenereerd. Dus Imvertor-XML naar EP naar Json-schema (naar yaml schema). Dit geldt voor beide methoden. Maar de implementaties lopen uiteen.
De strategie om te komen tot één module die de EP genereert (dus één variant, zie #337) en van daaruit één Json schema variant, moet serieus worden bekeken. VNG geeft aan dat het vooralsnog niet mogelijk is om af te wijken in de json/yaml schemas zoals die nu in OAS worden samengesteld. Dit, omdat afnemers aanpassingen niet zullen volgen.
Vooralsnog zal dus EP moeten worden gelijkgetrokken waarna (als nodig) de bedoelde twee json schema varianten worden opgeleverd. Dat is alvast het halve werk.
Ook zal dit EP formaat worden gegenereerd vanuit een MIM serialisatie. Dat is afwijkend van de huidige aanpak, waarbij het vanuit Imvert-XML wordt samengesteld (in beide methoden). Dit betekent dat de Json schema module alléén bedoeld is voor MIM modellen. Daarbij moet dus VNG kijken of die aansluiting (in BSM context) wel werkt.
Voorwaardelijk voor een succesvolle implementatie is dus:
NB
Bij deze de IMVB voorbeeld bestanden (json en yaml) gegenereerd m.b.v. de VNG-R methode BSM-IMVB.zip.
Inmiddels zijn beide genoemde schemas aangepast in een feature branch.
Deze schemas kunnen dus nog worden aangepast obv voortgang in het werk.
De eerste oplevering is gedaan op 3 aug 2023. @lvdbrink loopt het resultaat door.
Materiaal voor review van Johannes staat in
https://github.com/Geonovum/shapeChangeTest/tree/main/Results
Geonovum neemt initiatief tot encoding rules voor Json schema. Deze regels moeten ook op MIM modellen in imvertor worden toegepast. Dat betekent dat de huidige schema's en aanpak in Imvertor moet worden aangepast om de voldoen aan de nieuwe eisen.
De encoding rules: