Van XML naar JSON: databasedefinities in settings*

Gå til den engelske version

Fra udgivelse 27.0 læser Invantive UniversalSQL databasedefinitioner fra settings*.json i stedet for fra settings*.xml. Eksisterende XML-filer migreres automatisk.

Understøttelse af XML-formatet er ikke længere tilgængeligt fra Invantive UniversalSQL-udgivelse 28.0 (udgivelsen er planlagt til begyndelsen af 2028).

Hvorfor

XML-formatet stammer fra 2009 og har to problemer, der løses ved et formatskift.

  • Værktøjer: læsning eller generering af indstillinger kræver XPath og/eller XSLT. De fleste programmeringssprog kan dog parse JSON uden ekstra biblioteker. Generering af en indstillingsfil pr. kunde eller pr. miljø bliver således et spørgsmål om tekstskabeloner i stedet for XML-skabeloner.
  • Forældede elementer: XML-formatet bærer meget historisk bagage med hensyn til koncepter omkring databaseforbindelser. Mange elementer understøttes ikke længere eller er irrelevante. JSON-formatet bruger de nuværende koncepter, så det, du læser, er præcis det, termen betyder.

Format

settings*.json-formatet ligner meget XML-formatet. De vigtigste ændringer er:

  • <connection> kaldes database (ental) eller databases (flertal).
  • <database> kaldes dataContainer (ental) eller dataContainers (flertal).

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 afsluttende kommaer overhoppes, når en fil læses. Kommentarer og afsluttende kommaer forsvinder, hvis et produkt skriver settings*json-filen igen.

Migration

Vi har forsøgt at gøre migreringen så nem som muligt.

Første gang et produkt fra udgivelse 27.0 læser en settings*.xml-fil, hvor der ikke findes en .json-fil med samme navn, opretter det en funktionsmæssigt identisk JSON-fil ved siden af. XML-filen forbliver uændret. Forældede egenskaber ignoreres.

Filer, der oprettes gennem den automatiske opdagerproces (settings-discovery*.xml), migreres aldrig, da de er knyttet til en specifik vigtig udgivelse.

Hvilket format bruges?

Version Adfærd
26.0 og tidligere settings*.xml bruges; en settings*.json-fil ignoreres.
26.1 (BETA af 27.0) settings*.json bruges; en settings*.xml med samme navn ignoreres og bruges til at skabe JSON-varianten.
27.0 settings*.json bruges; en settings*.xml med samme navn ignoreres og bruges til at skabe JSON-varianten.
28.0 settings*.json bruges; XML-formatet understøttes eller bruges ikke længere til at generere JSON-varianten.

Når et miljø udelukkende bruger udgivelse 27.0 eller nyere, kan alle settings*.xml-filer sikkert slettes, hvis filen findes i JSON-format.