Van XML naar JSON: databasedefinities in settings*

Gå til engelsk versjon

Fra og med versjon 27.0 leser Invantive UniversalSQL databasedefinisjoner fra settings*.json i stedet for fra settings*.xml. Eksisterende XML-filer migreres automatisk.

Støtte for XML-formatet vil ikke lenger være tilgjengelig fra Invantive UniversalSQL versjon 28.0 (utgivelsen er planlagt tidlig i 2028).

Hvorfor

XML-formatet stammer fra 2009 og har to problemer som løses ved å endre formatet.

  • Verktøy: lesing eller generering av innstillinger krever XPath og/eller XSLT. De fleste programmeringsspråk kan imidlertid analysere JSON uten ekstra biblioteker. Generering av en innstillingsfil per kunde eller per miljø blir dermed et spørsmål om tekstmaler i stedet for XML-maler.
  • Utdaterte elementer: XML-formatet har mye historisk bagasje når det gjelder konseptene rundt databaseforbindelser. Mange elementer støttes ikke lenger eller er ikke lenger relevante. JSON-formatet bruker de nåværende konseptene, så det du leser er nøyaktig hva termen betyr.

Format

settings*.json-formatet ligner sterkt på XML-formatet. De viktigste endringene er:

  • <connection> kalles database (entall) eller databases (flertall).
  • <database> kalles dataContainer (entall) eller dataContainers (flertall).

For eksempel:

{ "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 og avsluttende kommaer blir ignorert når en fil leses. Kommentarer og avsluttende kommaer forsvinner hvis et produkt skulle skrive settings*.json-filen på nytt.

Migrasjon

Det er forsøkt å gjøre migrasjonen så enkel som mulig.

Første gang et produkt fra versjon 27.0 leser en settings*.xml-fil der det ikke finnes en .json-fil med samme navn, opprettes en funksjonelt identisk JSON-fil ved siden av den. XML-filen forblir uendret. Utdaterte egenskaper ignoreres.

Filer som opprettes av automatisk oppdagelse (settings-discovery*.xml) migreres aldri fordi de er knyttet til en bestemt hovedutgivelse.

Hvilket Format Brukes?

Versjon Atferd
26.0 og tidligere settings*.xml brukes; en settings*.json-fil ignoreres.
26.1 (BETA av 27.0) settings*.json brukes; en settings*.xml med samme navn ignoreres og brukes til å lage JSON-varianten.
27.0 settings*.json brukes; en settings*.xml med samme navn ignoreres og brukes til å lage JSON-varianten.
28.0 settings*.json brukes; XML-formatet støttes ikke lenger eller brukes til å generere JSON-varianten.

Når et miljø utelukkende bruker versjon 27.0 eller nyere, kan alle settings*.xml-filer trygt fjernes hvis filen er tilgjengelig i JSON-format.