Van XML naar JSON: database-definities in settings*

Ga naar de Nederlandse versie

Vanaf release 27.0 leest Invantive UniversalSQL databasedefinities uit settings*.json in plaats van settings*.xml. Bestaande XML-bestanden worden automatisch gemigreerd.

Ondersteuning voor het XML-formaat is niet langer beschikbaar vanaf Invantive UniversalSQL release 28.0 (gepland voor release rond begin 2028).

Waarom

Het XML-formaat dateert uit 2009 en heeft twee problemen die door een formaatwijziging worden opgelost.

  • Tooling: het lezen of genereren van een instellingenbestand vereist XPath en/of XSLT. Echter, de meeste talen parseren JSON zonder extra bibliotheken. Het genereren van een instellingenbestand per klant of per omgeving wordt meer een tekstsjabloonexercise dan een XML.
  • Verouderde elementen: het XML-formaat bevat veel geschiedenis over de databaseconnectiviteitsconcepten. Veel elementen worden niet langer ondersteund of zijn niet langer relevant. Het JSON-formaat maakt gebruik van de huidige concepten, dus wat je leest is wat de term betekent.

Formaat

Het settings*.json-formaat lijkt sterk op het XML-formaat. De belangrijkste wijzigingen zijn:

  • <connection> wordt “database” (enkelvoud) of “databases” (meervoud) genoemd.
  • <database> wordt “dataContainer” (enkelvoud) of “dataContainers” (meervoud) genoemd.

Bijvoorbeeld:

{ "version": "5"
, "groepen":
  [ { "naam": "ACME"
    , "sorteerVolgorde": 100
    , "databases":
      [ { "naam": "acme-eol"
        , "korteOmschrijving": "Exact Online"
        , "sorteerVolgorde": 10
        , "authenticatie": "Default"
        , "dataContainers":
          [ { "type": "dataContainer"
            , "provider": "ExactOnlineAll"
            , "alias": "eol"
            , "volgorde": 10
            , "connectieString": "..."
            }
          ]
        }
      ]
    }
  ]
}

Commentaren en staande komma’s worden getolereerd wanneer een bestand wordt gelezen. Commentaren en staande komma’s verdwijnen als een product het settings*json-bestand herschrijft.

Migratie

Er is moeite gedaan om de migratie zo eenvoudig mogelijk te maken.

De eerste keer dat een release 27.0 product een settings*.xml-bestand leest waarvoor geen gelijknamig .json-bestand bestaat, wordt dat functioneel identieke JSON-bestand ernaast aangemaakt. Het XML-bestand blijft ongewijzigd. Verouderde eigenschappen worden genegeerd.

Bestanden die door automatische ontdekking zijn geproduceerd (settings-discovery*.xml) worden nooit gemigreerd aangezien ze zijn gekoppeld aan een specifieke grote release.

Welk Formaat Wordt Gebruikt

Release 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 gelijknamige settings*.xml wordt genegeerd en gebruikt om de JSON-variant aan te maken.
27.0 settings*.json wordt gebruikt; een gelijknamige settings*.xml wordt genegeerd en gebruikt om de JSON-variant aan te maken.
28.0 settings*.json wordt gebruikt; het XML-formaat wordt niet langer ondersteund of gebruikt om de JSON-variant aan te maken.

Wanneer een omgeving alleen release 27.0 of nieuwer gebruikt, kunnen alle settings*.xml-bestanden veilig worden verwijderd wanneer het JSON-formaatbestand bestaat.