こんにちは、Takymです。
皆さんは、XMLとJSONのどちらを使用していますか?
僕は場合によって使い分けています。恐らく殆どの方も同じでしょう。
今回は、XMLとJSONをどちらか一つを使うのではなくXMLの中にJSONを埋め込んで見ようと思います。
(※今回の話では JSONML を使用しません。)
XML/JSONとは
XMLは「Extensible Markup Language」(拡張可能なマーク付け言語)の略でHTMLにとてもよく似たマークアップ言語です。「EML」とは略さないのは「X」が「Ex」の発音を表しているからだそうです。
元々、XMLとHTMLはSGMLから派生しているため、似た言語になっていますが、現在のHTMLはXMLの一種となっています。
その場合はXHTMLという呼び方もある様です。
JSONは「JavaScript Object Notation」(JavaScript オブジェクト記法)の略でJavaScriptの値の表現と同じ書式で記述する事ができるマークアップ言語データ記述言語です。(※2021年11月5日追記:JSONはマークアップ言語ではなくデータ記述言語でした。失礼致しました。尚、XMLはマークアップ言語でありデータ記述言語です。)
以下がXMLとJSONの例です。
<?xml version="1.0" encoding="UTF-8">
<xml>
<data name="test" type="string">
Hello, World!!
</data>
</xml>
{
"name": "test",
"type": "string",
"textdata": "Hello, World!!"
}
上記からも分かるようにXMLとJSONはデータの表現方法が異なります。
XMLとJSONの比較
XMLでは型(数値型、文字列型、論理型など)を明確に表現する事はできませんが、JSONでは、型を明確に表現する事ができます。
<?xml version="1.0" encoding="UTF-8">
<xml>
<number>123</number>
<string>text-value</string>
<condition>true</condition>
<object /> <!-- XMLでは空タグを指定する事ができる -->
</xml>
{
"number": 123,
"string": "text-value",
"condition": true,
"object": null // JSONではNULL値も利用できる。
}
今回は省略していますが、XMLには属性を指定する事ができます。
JSONはXMLの終了タグのように、一々同じ名前を繰り返す必要がないため、短く書く事ができます。
因みに、XMLの空タグとJSONのNULL値は厳密には同じ意味ではありません。
XMLの中にJSONを埋め込む
さて、ここからが本題です。
XMLの中にJSONを埋め込んでみます。
<?xml version="1.0" encoding="UTF-8">
<xml>
<json>
{
"hoge": "fuga",
"piyo": 123.45
}
</json>
</xml>
この様な感じにXMLの中にJSONを埋め込めば、今までよりも複雑なデータを表現できるようになると思います。
これは僕の感覚に拠るものなのかもしれませんが、見た目も悪くはないと思います。
感想
今回は、上記で書いたデータを読み込むプログラムは書いていませんが、時間があればそれを可能にするプログラムを書いてみたいです。
感想・意見・質問・誤字・脱字等はこの記事のコメント欄にお願いします。
最後まで読んでくださってありがとうございました。
2021年11月5日追記
記事を読み直して思ったのですが、XMLとJSONはどちらも表現力が高いため、混在させると可読性が落ちる気がしています。そして FC2 から移行した影響で、インデントや色が消えたのは残念だと思いました。インデントは修正しましたが。修正前の記事