XMLとJSONを結合させよう!

こんにちは、Takymです。
皆さんは、XMLJSONのどちらを使用していますか?
僕は場合によって使い分けています。恐らく殆どの方も同じでしょう。
今回は、XMLJSONをどちらか一つを使うのではなくXMLの中にJSONを埋め込んで見ようと思います。
(※今回の話では JSONML を使用しません。)

XML/JSONとは

XMLは「Extensible Markup Language」(拡張可能なマーク付け言語)の略でHTMLにとてもよく似たマークアップ言語です。「EML」とは略さないのは「X」が「Ex」の発音を表しているからだそうです。
元々、XMLHTMLSGMLから派生しているため、似た言語になっていますが、現在のHTMLXMLの一種となっています。
その場合はXHTMLという呼び方もある様です。
JSONは「JavaScript Object Notation」(JavaScript オブジェクト記法)の略でJavaScriptの値の表現と同じ書式で記述する事ができるマークアップ言語データ記述言語です。(※2021年11月5日追記:JSONはマークアップ言語ではなくデータ記述言語でした。失礼致しました。尚、XMLはマークアップ言語でありデータ記述言語です。)
以下がXMLJSONの例です。

<?xml version="1.0" encoding="UTF-8">
<xml>
    <data name="test" type="string">
        Hello, World!!
    </data>
</xml>
{
    "name": "test",
    "type": "string",
    "textdata": "Hello, World!!"
}

上記からも分かるようにXMLJSONはデータの表現方法が異なります。

XMLJSONの比較

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には属性を指定する事ができます。
JSONXMLの終了タグのように、一々同じ名前を繰り返す必要がないため、短く書く事ができます。
因みに、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日追記

記事を読み直して思ったのですが、XMLJSONはどちらも表現力が高いため、混在させると可読性が落ちる気がしています。そして FC2 から移行した影響で、インデントや色が消えたのは残念だと思いました。インデントは修正しましたが。修正前の記事

コメントを残す

WordPress.com で次のようなサイトをデザイン
始めてみよう