XMLについて調べた

ちょいちょい聞くxml。htmlは知ってるし、馴染み深いけど、xmlっていったいなんなんだ?

ということで調べてみた。

概要

  • マークアップ言語の一つ
  • 見た目はhtmlにそっくり…というか「xmlをホームページ専用にしたものがhtml」と理解すると簡単。(この説明は厳密にはxhtml
  • htmlと違ってタグを自由に決められる。タグと組み合わせてデータに意味を持たせることができる。
    • 例えば、
    • 23, 0, 23
    • 19, 0, 23
    • 50, 1, 23
    • というデータがあったとする。これはこのままだとただの数字の羅列だが、これをxmlで記述すると…。
<年齢>23</年齢><性別>0</性別><都道府県ID>23</都道府県ID>
<年齢>19</年齢><性別>0</性別><都道府県ID>23</都道府県ID>
<年齢>50</年齢><性別>1</性別><都道府県ID>23</都道府県ID>
  • こんな感じに書くことができ、実はこの数字のデータにはこんな意味があったんだということがわかるようになる。

どういうデータを扱うのが得意なのか

  • 前述したような一次元のリストの場合、xmlよりcsvを使った方が優れている。
  • xmlが活躍するのは、以下に示すような階層構造を持つデータのやり取り
<PERSONALDATA>
<ID>1</ID>
<BASICINFO>
<NAME>名前</NAME>
<ADDRESS>住所</ADDRESS>

</BASICINFO>
<ADVANCEINFO>
<LASTVISITED>20180601</LASTVISITED>

</ADVANCEINFO>
</PERSONALDATA>

どういうところで使われているのか

  • RSSの構造

      <?xml version="1.0" encoding="UTF-8"?>
      <rss version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd">
        <channel>
          <title>Tsukaのおしゃべりポッドキャスト</title>
          <itunes:owner>
            <itunes:email>tsuka@example.com</itunes:email>
          </itunes:owner>
          <itunes:author>tsuka</itunes:author>
          <description>日々の出来事や感じたことを語ります。</description>
          <itunes:image href="https://www.example.com/podcasts/tsuka/img/podcast.jpg"/>
          <language>ja-jp</language>
          <link>https://www.example.com/podcasts/tsuka/</link>
          <item>
            <title>鎌倉へ旅行に行ってきました</title>
            <description>鎌倉へ旅行に行ったときの思い出を語ります。</description>
            <pubDate>Sun, 28 Aug 2022 12:00:00 GMT</pubDate>
            <enclosure url="https://www.example.com/podcasts/tsuka/audio/kamakura.mp3" type="audio/mpeg" length="26004388"/>
            <itunes:duration>15:30</itunes:duration>
            <guid>tsukakamakura</guid>
          </item>
        </channel>
      </rss>
    
  • WordやExcelのファイル

  • PDF
  • 設定ファイルの書式
  • 言語間のデータの仲介

参考:

感想

ちょくちょく耳にしていたxmlの概要がわかった。

目にしたときは、タグが自由に設定されたツリー型のデータを思い浮かべようと思う。