7 Technische specificaties
De technische gegevensspecificaties komen beschikbaar op basis van AFD 2.0 uit SIVI AFS. In dit hoofdstuk kan de lezer kennisnemen van een toelichting.
7.1 Berichten & regelingen
Ieder bericht kan over meerdere regelingen (pension.scheme) gaan. Wel gaat het steeds om 1 party.pensioenprovider. De verzending is per bericht en dat bericht bevat dus 1 pension.provider en 1 of meer pension.scheme's
7.2 Validaties
De volgende validatieregels kunnen met de technische specificaties uitgevoerd worden:
- Controle of de berichtstructuur correct is;
-
Klopt het gegevenstype (onder meer getallen, strings);
-
Controle op minimale en maximale waarden;
-
Validatie van de veldlengte;
-
Controle of verplichte entiteiten en verplichte attributen aanwezig zijn;
-
Controle op het aantal herhalingen van entiteiten;
-
Is sprake van toepassing van toegestane codes uit codelijsten.
PM verbandscontroles (validatie regels op de tussen verschillende gegevens) zijn nog in ontwikkeling. Zie ook de JSON-schema’s.
7.3 JSON
- Het SIVI AFS team volgt voor AFD 2.0 in combinatie met JSON onderstaande specificaties (ontleend aan Forum Standaardisatie):
| Betreft | Omschrijving |
|---|---|
| Volledige naam | JavaScript Object Notation |
| Versie | RFC8259, december 2017 |
| Specificatiedocument | Specificatiedocument JSON |
| Beheerorganisatie | Internet Engineering Task Force |
| Functioneel toepassingsgebied | Objectnotatie voor het uitwisselen van datastructuren. Bijvoorbeeld in webapplicaties die asynchroon gegevens ophalen van de webserver. |
| Typering | Uitwisselen van datastructuren |
| Nut | JSON (JavaScript Object Notation) is een deelverzameling van de programmeertaal JavaScript. De eenvoud van JSON heeft geleid tot een grote populariteit ervan, met name als een ‘light’ alternatief voor XML. |
| Werking | JavaScript Object Notation (JSON) een formaat om net zoals XML gegevens op te slaan en te versturen. JavaScript is de programmeertaal waarvan de basis syntax beschrijving is afgeleid voor gebruik in JSON. JSON wordt gebruikt voor het uitwisselen van datastructuren, met name in webapplicaties die asynchroon gegevens ophalen van de webserver. De standaard is met name gericht op efficiënt programmeren en kent een compacte notatie bijvoorbeeld: { “naam”: Jan, “geboren”: 1983 } |
| Hulpmiddelen | Verschillende online JSON validators en hulpmiddelen zijn te vinden, ook voor de verschillende programmeerplatformen. Meer informatie over de standaard is ook te vinden via publicaties van ECMA International |
Richtlijn: Als een niet verplicht attribuut geen waarde heeft, moet het attribuut volledig worden weggelaten uit het JSON-bericht. Dit is een aanbevolen praktijk volgens de JSON-conventies.
7.3.1 Gebruik van JSON Schema
Voor validatie van de berichtstructuren maakt de standaard gebruik van JSON Schema.
De JSON-schema's worden gegenereerd vanuit AFD 2.0 / AOS en gepubliceerd via GitHub. Deze schema's ondersteunen: - validatie van berichtstructuren; - validatie van verplichte velden; - validatie van codelijsten; - validatie van technische constraints.
7.3.2 Overgang naar JSON Schema Draft 2020-12
Vanaf release 2027 gebruikt de VBPUO-standaard JSON Schema Draft 2020-12.
Deze wijziging is besproken en vastgelegd via GitHub issue:
De overstap betreft een technische modernisering van de JSON-schema's. De functionele betekenis van de berichten wijzigt hierdoor niet.
Verschillen ten opzichte van JSON Schema Draft 2019-09
Hoofdschema
- Het schema-dialect is gewijzigd van:
http://json-schema.org/draft/2019-09/schema#
naar:
https://json-schema.org/draft/2020-12/schema
-
De container met definities heet niet meer
definitionsmaar$defs. -
Interne verwijzingen zijn aangepast van:
#/definitions/...
naar:
#/$defs/...
- De externe verwijzing naar de codelist gebruikt nu het 2020-12-pad:
https://www.sivi.org/afd-online-tool/json/2020-12/AFDIDP.json#/$defs/AFDIDP
in plaats van:
https://www.sivi.org/afd-online-tool/json/AFDIDP.json#/definitions/AFDIDP
ValidationRules
-
Geen 2020-12-specifieke modelverschillen vastgesteld.
-
De file blijft een JSON-structuur met metadata en validatieregels; er zijn geen inhoudelijke wijzigingen vastgesteld als gevolg van de overgang naar Draft 2020-12.
AfdCodelists
- Het schema-dialect is gewijzigd van:
http://json-schema.org/draft-07/schema#
naar:
https://json-schema.org/draft/2020-12/schema
- De container met definities heet niet meer
definitionsmaar$defs.