リリース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ファイルを安全に削除できます。