Da XML a JSON: definizioni dei database nelle impostazioni*

Vai alla versione in inglese

A partire dalla versione 27.0, Invantive UniversalSQL legge le definizioni del database da settings*.json anziché da settings*.xml. I file XML esistenti vengono migrati automaticamente.

Il supporto per il formato XML non sarà più disponibile a partire dalla release 28.0 di Invantive UniversalSQL (la release è prevista per l’inizio del 2028).

Perché

Il formato XML risale al 2009 e presenta due problemi che vengono risolti con un cambio di formato.

  • Strumenti: la lettura o la generazione delle impostazioni richiede XPath e/o XSLT. La maggior parte dei linguaggi di programmazione può però analizzare JSON senza librerie aggiuntive. Generare un file di impostazioni per cliente o ambiente diventa così una questione di modelli di testo anziché modelli XML.
  • Elementi obsoleti: il formato XML porta con sé molta eredità storica in termini di concetti relativi alle connessioni ai database. Molti elementi non sono più supportati o rilevanti. Il formato JSON utilizza i concetti attuali, quindi ciò che leggi è esattamente ciò che il termine significa.

Formato

Il formato settings*.json è molto simile al formato XML. Le principali modifiche sono:

  • <connection> è chiamato database (singolare) o databases (plurale).
  • <database> è chiamato dataContainer (singolare) o dataContainers (plurale).

Per esempio:

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

I commenti e le virgole finali vengono ignorati quando un file viene letto. I commenti e le virgole finali scompaiono se un prodotto riscrive il file settings*json.

Migrazione

Si è cercato di rendere la migrazione il più semplice possibile.

La prima volta che un prodotto della release 27.0 legge un file settings*.xml per il quale non esiste un file .json con lo stesso nome, crea un file JSON funzionalmente identico accanto a quel file. Il file XML rimane invariato. Le proprietà obsolete vengono ignorate.

I file creati dalla scoperta automatica (settings-discovery*.xml) non vengono mai migrati poiché sono associati ad una specifica major release.

Quale Formato è Utilizzato?

Versione Comportamento
26.0 e precedenti Viene utilizzato settings*.xml; un file settings*.json viene ignorato.
26.1 (BETA della 27.0) Viene utilizzato settings*.json; un settings*.xml con lo stesso nome viene ignorato e utilizzato per creare la variante JSON.
27.0 Viene utilizzato settings*.json; un settings*.xml con lo stesso nome viene ignorato e utilizzato per creare la variante JSON.
28.0 Viene utilizzato settings*.json; il formato XML non è più supportato o utilizzato per generare la variante JSON.

Quando un ambiente utilizza esclusivamente la release 27.0 o successive, tutti i file settings*.xml possono essere eliminati in sicurezza se il file in formato JSON è presente.