テキストファイル形式 - .kdl


クラウディア 


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