web-dev-qa-db-ja.com

YAMLとXMLとの比較

数年後、xmlの代わりにyamlが使用されることを読みました。各仕様の相対的な長所と短所を比較してください。

51
Iguramu

YAMLははるかに冗長です。すべてのブラケットがないと、S/N比が高くなります。これにより、多くの人にとって読みやすく、編集しやすくなります。反対に、解析するのは少し(ほんの少しだけ)難しくなります。

ただし、最大の違いは、XMLはマークアップ言語であることを意味し、YAMLは実際にはデータ形式に近いということです。単純な階層データの表現は、YAMLでより優雅に行われる傾向がありますが、実際のマークアップされたテキストは表現が面倒です。

編集:参考のために、YAMLは本質的に(歴史的にではないが)JSON(「Javascript Object Notation」)の「よりクリーンな」バージョンであり、後者の知覚されるノイズ(大括弧と中括弧)を大幅に排除します。特定のプロジェクトに適したYAMLライブラリが見つからない場合、JSONはより広くサポートされている代替手段であり、YAMLの多くの利点があります。

77
Thom Smith

YAMLはXMLより冗長ではありません。ただし、YAMLはデータ専用であり、技術的にはマークアップ言語ではありません([〜#〜] y [〜#〜] AML [〜#〜] a [〜#〜] 'int [〜#〜] m [〜#〜] arkup [〜#〜] l [〜#〜] anguage)。

29
cakeforcerberus

私が見る主な利点は、人間が読みやすいことです。また、特定のデータ構造(辞書と配列)の概念が既に組み込まれているため、XMLよりも少し優れています。

反対に、YAMLを解析するためのライブラリのサポートはXMLのサポートにほど遠いため、XMLの主要な用途の1つを満たすためにそれを使用することは困難です。それはアプリケーション間通信です。

8
EBGreen

Xmlの大きな利点は、検証するオプションです(括弧内の意見):

  • Schematron(非常に強力)
  • W3C XMLスキーマ(固体)
  • DTD(それほど良くない(xmlでもない))
  • XSD(最も使用されている)

データをクエリするオプション:

  • XPath(バージョン2.xではさらに改善)
  • XQuery(ほとんど興味がなくなりました)

ほとんどの場合、YAMLはおそらく人間にとって最も読みやすいでしょう。

JSONは非常に読みやすく、JavaScriptがデータを保存する方法です(間違っている場合は修正してください)。値を解析するために独自のCスタイルプログラミング言語を記述するときにJSONを使用するのが大好きです。

8
RobF

私は、YAMLが将来であることをあまり確信していません。私はそれを使用しましたが、WorksForMe™を使用している間、私はしばしば仕様について不満を感じていました。最新のものは YAMLが好きではない理由 です。

5