YAML
拡張子 | .yaml, .yml |
---|---|
MIMEタイプ | application/yaml |
初版 | 2001年5月11日 (23年前) (2001-05-11) |
最新版 | 1.2 (Third Edition) (2009年10月1日 (14年前) (2009-10-01)) |
種別 | Data interchange |
オープン フォーマット | Yes |
ウェブサイト | yaml |
YAML(ヤメル[1][2]、ヤムル[3])とは、構造化データやオブジェクトを文字列にシリアライズ(直列化)するためのデータ形式の一種。
特徴
テキストのため可読である。その概念はXMLやプログラミング言語であるC、Python、Perlからきている。YAMLの原案はクラーク・エバンス[4]、ブライアン・インガーソン[5]、オーレン・ベンキク[6]が共同で出した。
YAMLは再帰的に定義された頭字語でありその語源は「YAML Ain't a Markup Language.」(→YAMLはマークアップ言語じゃない)である。初期には「Yet Another Markup Language」(→もうひとつ別のマークアップ言語)と言われていたが、マークアップよりもデータ重視を目的としていたために後付されてできた名前である。しかしながら XML(本当のマークアップ言語)がデータシリアライズ目的のために頻繁に使用されるため、 YAMLを軽量マークアップ言語と考えることもできる。類似の規格としてJSONがある。
表記方法
インデントを使い階層構造を表現する。ただし、インデントにはタブが使えずスペースのみが使える[7]。スペース2個単位でインデントすることが多い。
例
#
は行コメント。---
は、一つのファイル内に複数のYAMLドキュメントを埋め込むときに用いるセパレータ。
リスト
--- # お好みの映画、ブロック形式 - Casablanca - Spellbound - Notorious --- # 買い物リスト、インライン形式、またはフロー形式 [milk, bread, eggs]
連想配列
--- # ブロック name: John Smith age: 33 --- # インライン {name: John Smith, age: 33}
各行の改行の維持
--- | There was a young fellow of Warwick Who had reason for feeling euphoric For he could, by election Have triune erection Ionic, Corinthian, and Doric
最終行の改行のみ維持し他はスペース一字に置換
--- > Wrapped text will be folded into a single paragraph Blank lines denote paragraph breaks
ハッシュのリスト
- {name: John Smith, age: 33} - name: Mary Smith age: 27
リストのハッシュ
men: [John Smith, Bill Jones] women: - Mary Smith - Susan Williams
データ構造
YAML木は3種類の基本ノード、sequence, mapping, scalar からなる[8]。各ノードは kind, content, tag によって特徴づけられる[9]。
実装
YAMLは次の言語で利用可能である。
脚注
[脚注の使い方]
- ^ “Yet Another Markup Language (YAML) 1.0”. The Official YAML Web Site (2001年5月26日). 2016年2月15日閲覧。
- ^ “- Symfony”. Symfony, High Performance PHP Framework for Web Development. 2016年2月15日閲覧。
- ^ “ヤムル - PHPプロ!用語集”. PHPプロ!. 2017年3月23日閲覧。
- ^ 英: Clark Evans
- ^ 英: Brian Ingerson
- ^ 英: Oren Ben-Kik
- ^ “プログラマーのための YAML 入門 (初級編)”. 日本Rubyの会. 2017年3月23日閲覧。
- ^ "YAML represents any native data structure using three node kinds: sequence ...; mapping ...; and scalar" YAML specification v1.2.2.
- ^ "Each YAML node requires ... kind and content ... tag" YAML specification v1.2.2.
関連項目
外部リンク
- 公式ウェブサイト
- YAML検証ツール YAML Lint
- Best Online YAML Converter Convert YAML Strings into JSON, XML, CSV
データ交換(英語版)フォーマット | |
---|---|
対人可読フォーマット | |
バイナリフォーマット |
|
- 表示
- 編集