Vanaf release 27.0 leest Invantive UniversalSQL databasedefinities uit settings*.json in plaats van uit settings*.xml. Bestaande XML-bestanden worden automatisch gemigreerd.
Ondersteuning voor het XML-formaat is niet langer beschikbaar vanaf Invantive UniversalSQL-release 28.0 (de release staat gepland voor begin 2028).
Waarom
Het XML-formaat dateert uit 2009 en kent twee problemen die door een formaatwijziging worden opgelost.
- Tooling: het lezen of genereren van instellingen vereist XPath en/of XSLT. De meeste programmeertalen kunnen JSON echter zonder extra bibliotheken parseren. Het genereren van een instellingenbestand per klant of per omgeving wordt zo een kwestie van tekstsjablonen in plaats van XML-sjablonen.
- Verouderde elementen: het XML-formaat draagt veel historische bagage met zich mee wat betreft de concepten rond databaseverbindingen. Veel elementen worden niet langer ondersteund of zijn niet meer relevant. Het JSON-formaat maakt gebruik van de huidige concepten, dus wat je leest is precies wat de term betekent.
Formaat
Het settings*.json-formaat lijkt sterk op het XML-formaat. De belangrijkste wijzigingen zijn:
<connection>wordtdatabase(enkelvoud) ofdatabases(meervoud) genoemd.<database>wordtdataContainer(enkelvoud) ofdataContainers(meervoud) genoemd.
Bijvoorbeeld:
{ "version": "5"
, "groups":
[ { "name": "ACME"
, "sortingOrder": 100
, "databases":
[ { "name": "acme-eol"
, "shortDescription": "Exact Online"
, "sortingOrder": 10
, "authentication": "Default"
, "dataContainers":
[ { "kind": "dataContainer"
, "provider": "ExactOnlineAll"
, "alias": "eol"
, "order": 10
, "connectionString": "..."
}
]
}
]
}
]
}
Opmerkingen en afsluitende komma’s worden overgeslagen wanneer een bestand wordt gelezen. Opmerkingen en afsluitende komma’s verdwijnen als een product het settings*json-bestand opnieuw mocht schrijven.
Migratie
Er is getracht de migratie zo eenvoudig mogelijk te maken.
De eerste keer dat een product uit release 27.0 een settings*.xml-bestand leest waarvoor geen .json-bestand met dezelfde naam bestaat, maakt het naast dat bestand een functioneel identiek JSON-bestand aan. Het XML-bestand blijft ongewijzigd. Verouderde eigenschappen worden genegeerd.
Bestanden die door de automatische ontdekkingstocht worden aangemaakt (settings-discovery*.xml) worden nooit gemigreerd omdat ze gekoppeld zijn aan een specifieke major release.
Welk Formaat wordt Gebruikt?
| Versie | Gedrag |
|---|---|
| 26.0 en eerder | settings*.xml wordt gebruikt; een settings*.json-bestand wordt genegeerd. |
| 26.1 (BETA van 27.0) | settings*.json wordt gebruikt; een settings*.xml met dezelfde naam wordt genegeerd en gebruikt om de JSON-variant te maken. |
| 27.0 | settings*.json wordt gebruikt; een settings*.xml met dezelfde naam wordt genegeerd en gebruikt om de JSON-variant te maken. |
| 28.0 | settings*.json wordt gebruikt; het XML-formaat wordt niet langer ondersteund of gebruikt om de JSON-variant te genereren. |
Wanneer een omgeving uitsluitend release 27.0 of nieuwer gebruikt, kunnen alle settings*.xml-bestanden veilig worden verwijderd als het bestand in JSON-formaat aanwezig is.