XMLはHTMLと同様に、開始タグと終了タグで挟むことによって、キーと値を表現するデータ構造を持ったマークアップ言語です。HTMLと違い、タグの名称を自由に決めることができます。
ただし、特定の目的でXMLを使用する場合は、その目的に従ったタグの名称を使う必要があります。たとえば、RSSなどの定まった使用を持ったデータ構造を表すXMLデータであったり、ソフトウェアやプログラムの設定ファイルとしてXMLファイルが使われる場合は、その規約に従う必要があります。
XMLのデータ構造は、キーを表現するために、開始タグと終了タグが必要になるため、ファイルサイズが大きくなってしまいます。
また、プログラムからXMLデータを扱う場合は、言語構造が違うため、プログラム内で変換する処理が必要になります。
297バイト
<empinfo> <employees> <name>山田</name> <salary>20万</salary> <age>24</age> </employees> <employees> <name>鈴木</name> <salary>27万</salary> <age>35</age> </employees> <employees> <name>佐藤</name> <salary>35万</salary> <age>46</age> </employees> </empinfo>
右のように、HTMLと同様に属性地として、キーと値を表現することができます。その場合は、上記の属性地を使わない記述よりもファイルサイズを小さくすることができます。
ただし、すべて属性地で値を表現してしまうと、扱いにくくなったり、XML本来の視認性を失ってしまいますし、すべての開始タグ、終了タグを省略して表現することはできません。
270バイト
<empinfo> <employees name="山田"> <salary>20万</salary> <age>24</age> </employees> <employees name="鈴木"> <salary>27万</salary> <age>35</age> </employees> <employees name="佐藤"> <salary>35万</salary> <age>46</age> </employees> </empinfo>
JSON形式は、JavaScrpt Object Notationという名の通り、JavaScriptでObject型のデーターを表現する際に使われる、データ構造です。XMLと違い、キーの表現をシンプルに表現することができ、ファイルサイズを小さくすることができます。
また、JavaScriptからJSON形式のデータを扱う場合は、JavaScript本来の文法であるため、XMLのときのような変換処理は必要ありません。ただし、JavaScript以外の言語で扱う場合は、JSON形式のデータ構造を持たない言語であれば変換処理が必要になります。
250バイト
{"empinfo": { "employees":[ { "name":"山田", "salary":"20万", "age":24 }, { "name":"鈴木", "salary":"27万", "age":35 }, { "name":"佐藤", "salary":"35万", "age":46 } ] } }
XMLはJavaScriptやPHPなどの文法体系とは異なるので、一度パース(構文解析)して、プログラムで扱える形にする必要があります。しかしながらJSONに関しては、JavaScriptの文法体系を持つので、容易にパースすることができます。
XMLやJSONは、JavaSCriptを使って、異なるドメインのサーバーから読み込むことができません。XMLやJSONを読み込むには一度、PHPなどのサーバー技術で、同一ドメインのサーバー内で読み込む必要があります。