YAML

YAML(ヤメル、ヤムル)は、構造化データやオブジェクトを文字列にシリアライズ(直列化)するためのデータ形式の一つです。テキスト形式であるため、人間が読みやすいという特徴があります。その概念は、XMLやプログラミング言語であるC、PythonPerlなどから影響を受けています。YAMLの原案は、クラーク・エバンス、ブライアン・インガーソン、オーレン・ベンキクの3人によって共同で作成されました。

YAMLは、「YAML Ain't a Markup Language.」という再帰的に定義された頭字語であり、その名前の由来は「YAMLはマークアップ言語ではない」という意味です。当初は「Yet Another Markup Language」(もう一つのマークアップ言語)と呼ばれていましたが、マークアップよりもデータ記述を重視する目的であったため、現在の名称になりました。しかしながら、XML(本来のマークアップ言語)がデータシリアライズの目的で頻繁に使用されるため、YAMLを軽量マークアップ言語と捉えることも可能です。はYAMLと類似した規格として知られています。

表記方法



YAMLでは、インデントを使って階層構造を表現します。ただし、インデントにはタブを使用することはできず、スペースのみが使用可能です。一般的に、スペース2個単位でインデントすることが多いです。



yaml

これは行コメントです。


  • ---

--- は、一つのファイル内に複数のYAMLドキュメントを埋め込むときに用いるセパレータです。



リスト:
- アイテム1
- アイテム2

連想配列:
キー1: 値1
キー2: 値2

各行の改行を維持する場合:
|-
これは
複数行の
文字列です。

最終行の改行のみ維持し、他をスペースに置換する場合:
>-
これは
複数行の
文字列です。

ハッシュのリスト:
- name: 名前1
age: 20
- name: 名前2
age: 25

リストのハッシュ:


- 項目1
- 項目2


- 項目3
- 項目4


データ構造



YAMLのデータ構造は、3種類の基本ノードから構成されます。これらのノードは、`sequence`(シーケンス)、`mapping`(マッピング)、`scalar`(スカラー)です。各ノードは、`kind`(種類)、`content`(内容)、`tag`(タグ)によって特徴づけられます。

sequence:順序付けられたアイテムのリストです。配列やリストのように、複数の要素を順番に格納します。
mapping:キーと値のペアを格納する構造です。ハッシュ、連想配列、辞書などと呼ばれるものと同様です。
scalar:単一の値です。文字列、数値、ブール値などが該当します。

実装



YAMLは、多くのプログラミング言語で利用可能です。以下はその一例です。

Python
Java
Ruby
JavaScript
PHP
C++
C#

関連項目



データ記述言語
マークアップ言語
軽量マークアップ言語

外部リンク



公式ウェブサイト
YAML検証ツール YAML Lint
Best Online YAML Converter Convert YAML Strings into , XML, CSV

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。