Från XML till JSON: databasdefinitioner i inställningar*

Gå till den engelska versionen

Från och med version 27.0 kommer Invantive UniversalSQL att läsa databasdefinitioner från settings*.json istället för från settings*.xml. Befintliga XML-filer migreras automatiskt.

Stöd för XML-formatet kommer inte längre att vara tillgängligt från och med Invantive UniversalSQL version 28.0 (versionen är planerad till början av 2028).

Varför

XML-formatet är från 2009 och har två problem som löses genom ett formatbyte.

  • Verktyg: Att läsa eller generera inställningar kräver XPath och/eller XSLT. De flesta programmeringsspråk kan dock parsra JSON utan extra bibliotek. Generering av en inställningsfil per kund eller per miljö blir då en fråga om textmallar istället för XML-mallar.
  • Föråldrade element: XML-formatet bär på mycket historiskt bagage när det gäller begreppen kring databasanslutningar. Många element stöds inte längre eller är inte längre relevanta. JSON-formatet använder aktuella begrepp, så det du läser är exakt vad termen betyder.

Format

settings*.json-formatet liknar starkt XML-formatet. De viktigaste ändringarna är:

  • <connection> kallas för database (singularis) eller databases (pluralis).
  • <database> kallas för dataContainer (singularis) eller dataContainers (pluralis).

Exempel:

{ "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": "..."
            }
          ]
        }
      ]
    }
  ]
}

Kommentarer och avslutande kommatecken ignoreras när en fil läses. Kommentarer och avslutande kommatecken försvinner om en produkt skulle skriva om settings*.json-filen.

Migration

Det har försökt göras så enkelt som möjligt att migrera.

Första gången en produkt från release 27.0 läser en settings*.xml-fil för vilken det inte finns någon .json-fil med samma namn, skapas en funktionellt identisk JSON-fil bredvid den filen. XML-filen förblir oförändrad. Föråldrade egenskaper ignoreras.

Filer som skapas genom den automatiska upptäckten (settings-discovery*.xml) migreras aldrig eftersom de är kopplade till en specifik huvudversion.

Vilket Format Används?

Version Beteende
26.0 och tidigare settings*.xml används; en settings*.json-fil ignoreras.
26.1 (BETA av 27.0) settings*.json används; en settings*.xml med samma namn ignoreras och används för att skapa JSON-varianten.
27.0 settings*.json används; en settings*.xml med samma namn ignoreras och används för att skapa JSON-varianten.
28.0 settings*.json används; XML-formatet stöds eller används inte längre för att generera JSON-varianten.

När en miljö uteslutande använder release 27.0 eller senare, kan alla settings*.xml-filer säkert tas bort om filen finns i JSON-format.