De XML a JSON: definiciones de base de datos en configuraciones*

Ir a la versión en neerlandés

A partir de la versión 27.0, Invantive UniversalSQL lee las definiciones de las bases de datos desde settings*.json en lugar de settings*.xml. Los archivos XML existentes se migran automáticamente.

El soporte para el formato XML ya no estará disponible a partir de la versión 28.0 de Invantive UniversalSQL (programada para su lanzamiento alrededor del comienzo de 2028).

Por qué

El formato XML data de 2009 y presenta dos problemas que se resuelven con un cambio de formato.

  • Herramientas: leer o generar una configuración requiere XPath y/o XSLT. Sin embargo, la mayoría de los lenguajes analizan JSON sin bibliotecas adicionales. Generar un archivo de configuración por cliente o por entorno se convierte en un ejercicio de plantillas de texto en lugar de uno de XML.
  • Elementos obsoletos: el formato XML tiene mucha historia sobre los conceptos de conectividad de base de datos. Muchos elementos ya no son compatibles o relevantes. El formato JSON utiliza los conceptos actuales, por lo que lo que lees es lo que significa el término.

Formato

El formato settings*.json se asemeja mucho al formato XML. Los cambios más importantes son:

  • <connection> se denomina database (singular) o databases (plural).
  • <database> se denomina dataContainer (singular) o dataContainers (plural).

Por ejemplo:

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

Se toleran los comentarios y las comas finales cuando se lee un archivo. Los comentarios y las comas finales desaparecen si un producto reescribe el archivo settings*json.

Migración

Se ha realizado un esfuerzo para que la migración sea lo más fácil posible.

La primera vez que un producto de la versión 27.0 lee un archivo settings*.xml para el cual no existe un archivo idéntico con nombre .json, crea ese archivo JSON funcionalmente idéntico junto a él. El archivo XML se deja sin cambios. Se ignoran las propiedades obsoletas.

Los archivos producidos por el descubrimiento automático (settings-discovery*.xml) nunca se migran, ya que están asociados con una versión principal específica.

Qué formato se utiliza

Versión Comportamiento
26.0 y anteriores Se usa settings*.xml; se ignora un archivo settings*.json.
26.1 (BETA de 27.0) Se usa settings*.json; se ignora un settings*.xml con nombre idéntico y se usa para crear la variante JSON.
27.0 Se usa settings*.json; se ignora un settings*.xml con nombre idéntico y se usa para crear la variante JSON.
28.0 Se usa settings*.json; el formato XML ya no es compatible ni se usa para crear la variante JSON.

Cuando un entorno solo utiliza el lanzamiento 27.0 o posterior, todos los archivos settings*.xml pueden eliminarse de forma segura cuando existe el archivo en formato JSON.