Extensible Markup Language (XML) は、Standard Generalized Markup Language (SGML) から派生したテキスト形式です。
XML に関する興奮のほとんどは、交換可能なデータのシリアライゼーション形式としての新しい役割に関するものです。XML には、データ表現言語として次の 2 つの大きな利点があります。
It is text-based.
It is position-independent.
これらが合わさって、他のデータ交換フォーマットよりも高いレベルのアプリケーション非依存性が促進されました。XML がすでに W3C 標準であったという事実は、争う余地があまり残っていないことを意味していました (またはそう思われていました)。
残念ながら、レンチが釘を打ち込むのに適していないのと同様に、XML はデータ交換には適していません。これには多くの荷物があり、ほとんどのプログラミング言語のデータ モデルと一致しません。ほとんどのプログラマーは、XML を初めて見たとき、XML がいかに醜く非効率的であるかにショックを受けました。その最初の反応が正しかったことが判明しました。XML のすべての利点を持ちながら、データ交換により適した別のテキスト表記法があります。その表記法が JavaScript Object Notation (JSON) です。
XML に関する最も詳しい意見 (たとえば xmlsuck.org を参照) は、XML にはデータ交換フォーマットとして大きな問題があることを示唆していますが、その欠点は相互運用性とオープン性の利点によって補われています。
JSON は、相互運用性とオープン性という同じ利点を約束しますが、欠点はありません。
残りの比較はこちらです。