- 1. 概要
- 2. 特徴・構文
- 3. 利点・注意点
- 4. 参考サイト
1. 概要
「.kdl」という形式は、「デスクトップ環境構築 - niri」をさわる際にはじめてお目にかかりました。
参考サイトによれば。
小規模で扱いやすく、人に優しいドキュメント言語。JSON、YAML、XML のようなシリアライズ形式(データの記録・交換形式)としても、設定ファイル(configuration language)としても使えるよう設計されています。
現在の仕様は KDL 2.0.0。古い KDL(1.0.0)の互換性もあり、移行は可能。
以下、参考サイトからの子引き孫引きになります。
2. 特徴・構文
特徴・構文は、ざっと以下のようなものだそうです。
| 特徴 | 内容 | 備考 |
| ノード構造 | XML の要素に似た「ノード (node)」という単位があります。ノードは名前、引数(arguments)、プロパティ(key/value ペア)、子ノードを持てます。 | |
| 値の種類 | サポートする基本型として、文字列(strings)、数値(numbers)、真偽値(booleans)、ヌル(null)があります。 | |
| 文字列の扱い | 複数のフォーマットを持ちます:非引用文字列 (unquoted)、引用付き文字列 (quoted)、raw(生文字列)など。改行を含む複数行文字列もサポート。 | |
| コメント | 通常の C スタイルのコメント(// や /* */)に加えて、「slashdash コメント」(/- … { … } の形式など)という、
ノード単位でノード全体をコメントアウトするような構造もあります。 | |
| 柔軟性と明確性のバランス | YAML のような柔軟性(書きやすさ、可読性)、XML のようなノード的構造、JSON のような互換性の可能性を意識した設計。データタイプや構造で曖昧さを減らす工夫がある。 | |
用途・使いどころとしては。
・設定ファイル(設定項目を人が読み書きする必要のあるもの)として
・データのシリアライズ形式として、アプリやツールで読み書き
・プロジェクトのマニフェスト(依存関係、バージョンなど)を記述するのに使われている例もあります
だそうです。
3. 利点・注意点
利点
・人間に読みやすい。可読性がよく、余計な記号が少なくて済む。
・コメントや複数行文字列、raw 文字列などの便利な機能が揃っているので、設定を書くときに融通が利く。
・既存の JSON や XML との変換が可能なツールや仕様 (“JSON in KDL”, “XML in KDL”) が用意されている。
注意点
・利用者がまだ多くないので、エディタサポート・ツール支援が限られていたり、
ライブラリの成熟度が製品・プロジェクトによってバラつきあり。
・データ型の扱いや仕様の細かい部分(例:数値表現、型注釈、エスケープなど)を理解していないと思わぬ動作になることも。
・既存の JSON / YAML / XML を使用している環境との互換性・移行コストを考える必要がある。
だそうです。
4. 参考サイト
本ページは、下記のサイトおよび「ChatGPT」くんを参考にさせていただきました。
「The KDL Document Language」
|
|