YAML 【YAML Ain’t Markup Language】 .ymlファイル

概要

YAML(YAML Ain’t Markup Language)とは、構造的なデータ集合を簡素な文字列として表記することができるデータ形式の一つ。ソフトウェア設定ファイルの記述や異なるソフトウェア間のデータ交換などでよく用いられる。ファイル拡張子は「.yml」とすることが多いが、公式には「.yaml」が標準とされる。

用途はXMLのような汎用マークアップ言語に近いが、文法はプログラミング言語に近く、JavaScriptオブジェクト記法でデータを記述するJSONJavaScript Object Notation)とよく比較される。プログラムが内部で扱うオブジェクトなどを、保存や送受信などのために文字データ化する「シリアライズ」(serialize/直列化)のための形式として特に有名である。

基本的な仕様

YAMLでは基本的に「シーケンス」(sequence)、「マッピング」(mapping)、「スカラ」(scalar)の3種類の形式の組み合わせとしてデータを記述していく。

シーケンスは多くのプログラミング言語で「配列」(array)「リスト」(list)などと呼ばれる、データを連続に並べた構造である。同様に、マッピングは「ハッシュ」(hash)「連想配列」(associative array)などと呼ばれる、キーのペアを列挙する構造で、スカラは単体のデータである。

シーケンスマッピング入れ子ネスト)構造の表現は、1文字以上の半角スペースを行頭に挿入して字下げインデント)することによってなう。スペースの数は任意だが、タブ文字で代用することはできない。

スカラとして記述することのできるデータ型には、文字列、整数(8進数/10進数/16進数)、浮動小数点数真理値true/false)、日付、日付と時刻(タイムスタンプ)、空データNull値)などがあり、特定のプログラミング言語の特定のデータ型を明示して記述することもできる。

記法

スカラは「10」なら整数、「0.1」なら浮動小数点数、「abc」なら文字列といったように原則として表記によって自動的にデータ型の判定がわれる。数字や真理値の「true」などを文字列として扱いたい場合は引用符(「"」または「'」)で括る。先頭に「!!str 」のように「!!型名 」を付けて型を明示することもできる。

シーケンスは、一行で記述する場合は [ Red, Green, Blue ] のように角括弧で囲ってカンマ区切りで並べる。一行に一項目を記述する場合は先頭をハイフン(-)とする。マッピングは「key : value」のようにコロン(:)でキーを対応付ける。

シーケンスの項目やマッピングを別のシーケンスマッピングにすることができ、何段階も入れ子状構造化することができる。データ本体として評価されたくない注釈(コメント)を記述したいときは、「#」を記述すればそこから行末までがコメントとなる。コメントは行頭からでもの途中からでもよい。

歴史

YAMLは2001年にクラーク・エバンス(Clark Evans)氏、インギー・ドットネット(Ingy döt Net/2005年にTerry Brian Ingersonから改名)氏、オーレン・ベンキキ(Oren Ben-Kiki)氏らが考案し、最初の正式な仕様は2004年1月に発表された。

「YAML」という名称の由来は、当初はXML等を意識した “Yet Another Markup Language” (さらにもう一つのマークアップ言語)の略とされていたが、現在では正式には “YAML Ain’t Markup Language” (YAMLはマークアップ言語ではない)の略とされる。

(2023.3.8更新)

他の辞典による解説 (外部サイト)

この記事の著者 : (株)インセプト IT用語辞典 e-Words 編集部
1997年8月より「IT用語辞典 e-Words」を執筆・編集しています。累計公開記事数は1万ページ以上、累計サイト訪問者数は1億人以上です。学術論文や官公庁の資料などへも多数の記事が引用・参照されています。
ホーム画面への追加方法
1.ブラウザの 共有ボタンのアイコン 共有ボタンをタップ
2.メニューの「ホーム画面に追加」をタップ
閉じる