7 Technical Specifications
The technical data specifications are made available based on AFD 2.0 from SIVI AFS. In this chapter the reader can take note of an explanation.
7.1 Messages & Schemes
Each message can concern multiple schemes (pension.scheme). However, it always pertains to a single party.pensionProvider. The transmission is per message, and that message thus contains 1 pension.provider and 1 or more pension.scheme's.
7.2 Validations
The following validation rules can be implemented using the technical specifications:
-
Check if the message structure is correct;
-
Verify the data type (including numbers, strings);
-
Check for minimum and maximum values;
-
Validate the field length;
-
Check for the presence of mandatory entities and mandatory attributes;
-
Check the number of repetitions of entities;
-
Ensure the use of allowed codes from code lists.
N.B.: Integrity constraints (validation rules between different data elements) are still in development. See also the JSON schemas.
7.3 JSON
- The SIVI AFS team follows the specifications below for AFD 2.0 in combination with JSON (derived from Forum Standaardisatie):
| Concern | Description |
|---|---|
| Full Name | JavaScript Object Notation |
| Version | RFC8259, December 2017 |
| Specification Document | JSON Specification Document |
| Managing Organization | Internet Engineering Task Force |
| Functional Scope | Object notation for exchanging data structures. For example, in web applications that asynchronously retrieve data from the web server. |
| Typing | Exchange of data structures |
| Benefit | JSON (JavaScript Object Notation) is a subset of the JavaScript programming language. The simplicity of JSON has led to its great popularity, especially as a 'light' alternative to XML. |
| Operation | JavaScript Object Notation (JSON) is a format for storing and sending data, similar to XML. JavaScript is the programming language from which the basic syntax description was derived for use in JSON. JSON is used for exchanging data structures, particularly in web applications that asynchronously retrieve data from the web server. The standard is particularly aimed at efficient programming and has a compact notation, for example: { "name": Jan, "born": 1983 } |
| Tools | Various online JSON validators and tools are available, also for different programming platforms. More information about the standard can also be found via publications from ECMA International |
Guideline: If a non-mandatory attribute has no value, the attribute should be completely omitted from the JSON message. This is a recommended practice according to JSON conventions.
7.3.1 Use of JSON Schema
For validation of the message structures, the standard uses JSON Schema.
The JSON schemas are generated from AFD 2.0 / AOS and published via GitHub. These schemas support: - validation of message structures; - validation of mandatory fields; - validation of code lists; - validation of technical constraints.
7.3.2 Transition to JSON Schema Draft 2020-12
From release 2027, the VBPUO standard uses JSON Schema Draft 2020-12.
This change has been discussed and documented via GitHub issue:
The transition concerns a technical modernization of the JSON schemas. The functional meaning of the messages does not change as a result.
Differences Compared to JSON Schema Draft 2019-09
Main Schema
- The schema dialect has changed from:
http://json-schema.org/draft/2019-09/schema#
to:
https://json-schema.org/draft/2020-12/schema
-
The container with definitions is no longer called
definitionsbut$defs. -
Internal references have been adjusted from:
#/definitions/...
to:
#/$defs/...
- The external reference to the codelist now uses the 2020-12 path:
https://www.sivi.org/afd-online-tool/json/2020-12/AFDIDP.json#/$defs/AFDIDP
instead of:
https://www.sivi.org/afd-online-tool/json/AFDIDP.json#/definitions/AFDIDP
ValidationRules
-
No 2020-12-specific model differences have been identified.
-
The file remains a JSON structure with metadata and validation rules; no substantive changes have been identified as a result of the transition to Draft 2020-12.
AfdCodelists
- The schema dialect has changed from:
http://json-schema.org/draft-07/schema#
to:
https://json-schema.org/draft/2020-12/schema
- The container with definitions is no longer called
definitionsbut$defs.