XMLからJSONへ: 設定でのデータベース定義*

オランダ語版へ移動

リリース27.0から、Invantive UniversalSQLはデータベース定義をsettings*.xmlではなくsettings*.jsonから読み取ります。既存のXMLファイルは自動的に移行されます。

XML形式のサポートは、2028年初め頃に予定されているInvantive UniversalSQLリリース28.0から利用できなくなります。

理由

XML形式は2009年にさかのぼり、形式変更で解決される2つの問題を抱えています。

  • ツール: 設定の読み取りまたは生成にはXPathおよび/またはXSLTが必要です。しかし、ほとんどの言語は追加のライブラリなしでJSONを解析できます。顧客または環境ごとの設定ファイルの生成は、XMLよりもテキストテンプレートの演習となります。
  • 時代遅れの要素: XML形式にはデータベース接続概念に関する多くの履歴が含まれています。多くの要素はもはやサポートされていないか、関連性がありません。JSON形式は現在の概念を使用しているため、あなたが読むことはその用語の意味です。

形式

settings*.json形式はXML形式に非常に似ています。最も重要な変更は次のとおりです。

  • <connection>は単数形でdatabaseまたは複数形でdatabasesと呼ばれます。
  • <database>は単数形でdataContainerまたは複数形でdataContainersと呼ばれます。

例えば:

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

ファイルが読み込まれるとき、コメントやトレーリングコンマは許容されます。製品がsettings*jsonファイルを書き換えると、コメントやトレーリングコンマは消えます。

移行

移行を可能な限り容易にするための努力がされています。

リリース27.0の製品が、同じ名前の.jsonファイルが存在しないsettings*.xmlファイルを初めて読み取るとき、その機能的に同一のJSONファイルがその横に作成されます。XMLファイルは変更されません。廃止されたプロパティは無視されます。

自動検出によって生成されたファイル(settings-discovery*.xml)は、特定のメジャーリリースに関連付けられているため、決して移行されません。

どの形式が使用されているか

リリース 動作
26.0以前 settings*.xmlが使用されます。settings*.jsonファイルは無視されます。
26.1(27.0のBETA) settings*.jsonが使用されます。 同じ名前のsettings*.xmlは無視され、JSONバリアントの作成に使用されます。
27.0 settings*.jsonが使用されます。同じ名前のsettings*.xmlは無視され、JSONバリアントの作成に使用されます。
28.0 settings*.jsonが使用されます。XML形式はサポートされず、JSONバリアントの作成にも使用されません。

環境がリリース27.0以降のみを使用する場合、JSON形式のファイルが存在する場合はすべてのsettings*.xmlファイルを安全に削除できます。