「.md」「.json」「.csv」といったファイルの種類を、目にしたことはあるでしょう。
でも「何が違うのか」「誰がそのルールを決めているのか」までは、意外と知られていません。
この記事では、ルールを定めている団体の公式資料だけを根拠に、よく使われる6つの形式の違いを、できるだけやさしく整理します。
先に押さえる3つの言葉
| 言葉 | 意味 |
| データ形式 | 情報を、ファイルの中にどう書くかの決まりごと。 日本語の「書式」に近い |
| 仕様(しよう) | その決まりごとを細かく書いた文書。 仕様がしっかりしているほど、別のソフトでも同じように読める |
| RFC(アールエフシー) | インターネットの技術ルールを公開している文書。 IETFという団体が発行している。 「標準」として決められたものと、「参考情報」として載せただけのものがある |
この記事に出てくるW3Cは、Webの技術の標準を決めている団体です。
6形式の早見表
| 形式 | ひとことで言うと | ルールの位置づけ |
| Markdown | 文章の見出しや箇条書きを、記号だけで書く書き方 | 全員が従う一つの公式ルールはない。 いくつかの流派(方言)がある [M1][M2] |
| JSON | ソフトやシステム同士が、データをやり取りするための形式 | RFC 8259で、インターネットの標準として決められている [J1] |
| CSV | 表のデータを、カンマで区切って並べる形式 | RFC 4180はあくまで「参考情報」。 公式な標準はない [C1] |
| YAML | 人が読みやすいように作られた、データの書き方 | YAML 1.2.2という仕様がある [Y1] |
| TOML | 人が読みやすい、設定ファイル用の形式 | TOML v1.0.0という仕様がある [T1] |
| XML | タグで文書やデータの構造を示す形式 | W3Cが公式に推奨する仕様(勧告)がある [X1] |
選び方の目安
- 人が読み書きする文章:Markdown
- ソフト同士のデータのやり取り:JSON
- Excelなどの表データのやり取り:CSV
- 人が手で編集する設定ファイル:YAMLまたはTOML
- 文書の構造を厳密に示したいとき、またはXMLを前提にした仕組みとつなぐとき:XML
注記:この目安は、各仕様が掲げている目的を、私が整理したものです。
仕様書がこの使い分けを指定しているわけではありません。
実際には、使うソフトや相手のシステムが対応している形式に左右されます。
「ルールの厳しさ」は形式ごとにかなり違う
JSONとXMLは、標準化団体がきちんと決めた規格です。
一方、CSVは「みんなが使っている書き方」を後から文書にまとめたもので、Markdownは最初から「流派がある前提」の書き方です [J1][X1][C1][M2]。
そのため、「同じ拡張子なら、どのソフトでも同じ動き」とは限りません。ここが、思わぬトラブルの出どころになりがちです。
読み進め方
- Markdownの「流派」という考え方 → 詳細①
- JSONでつまずきやすい点(コメント、数字、文字コード) → 詳細②
- CSVの書き方のルールと、ソフトごとの違い → 詳細③
- YAML・TOML・XMLの得意分野の違い → 詳細④
参照元
[M1] CommonMark Spec — https://spec.commonmark.org/
[M2] IETF, RFC 7763: The text/markdown Media Type — https://www.rfc-editor.org/rfc/rfc7763
[J1] IETF, RFC 8259: The JavaScript Object Notation (JSON) Data Interchange Format — https://datatracker.ietf.org/doc/html/rfc8259
[C1] IETF, RFC 4180: Common Format and MIME Type for CSV Files — https://datatracker.ietf.org/doc/html/rfc4180
[Y1] YAML Ain’t Markup Language (YAML) version 1.2.2 — https://yaml.org/spec/1.2.2/
[T1] TOML v1.0.0 — https://toml.io/en/ [X1] W3C, Extensible Markup Language (XML) 1.0 (Fifth Edition) — https://www.w3.org/TR/xml/

コメント