※本ページにはプロモーション(広告)が含まれています
タグで情報を構造化するマークアップ言語。自由にタグ名を定義でき、設定ファイル・Office文書・RSSフィードなどで今も広く使われる。
詳しい解説
XMLは「Extensible Markup Language」の略で、1998年にW3Cが勧告した、データを構造化して記述するためのマークアップ言語です。HTMLと似て開始タグと終了タグで情報を包む形式ですが、タグ名を自由に定義できる『拡張可能』な点が最大の違いです。
構造は `<book><title>ITの教科書</title><author>山田</author></book>` のように、ネストした要素で情報を階層的に表現します。属性も `<book id="123">` のように持たせることができ、DTDやXML Schemaで厳密な型定義・制約も可能です。
2000年代前半はJSONが普及する前の主力データ形式で、SOAPベースのWebサービス、RSS/Atomフィード、Adobe Flex、Androidのレイアウト定義(今も使用)、Microsoft Office文書(.docx/.xlsx/.pptxはXMLのZIP圧縮)、Mavenのpom.xml、SVG画像、設定ファイルなど幅広く使われてきました。
JSONが普及した現在でも、XMLは完全には消えていません。ドキュメント志向(タグ内のテキストが意味を持つ)、厳密な型定義が必要、名前空間が必要、XSLTで変換したい、といった用途ではXMLが今も適しています。一方、APIのデータ交換やWebサービス間通信はJSONが主流になりました。
欠点は冗長さで、同じ情報をJSONで書くと2〜3倍コンパクトになることが多いです。また、閉じタグ・名前空間・CDATAセクションなど学習すべき要素がJSONより多く、パーサーの実装も複雑になります。
XPathで特定要素を抽出、XSLTでHTMLに変換、XQueryで検索、といった周辺技術のエコシステムが整備されているのも特徴です。
Word文書(.docx)の実態は、XMLファイルをZIP圧縮したものです。拡張子を .zip に変えて解凍すると、document.xml に本文が、styles.xml にスタイルが、といった形で分かれて格納されているのを確認できます。RSSフィードもXMLで、Googleニュースやブログ更新の通知はこのフォーマットが今も現役で支えています。
別の呼び方
Extensible Markup Language
XML文書
minto.tech スマホ(Android/iPhone)・PC(Mac/Windows)の便利情報をお届け! 月間アクセス160万PV!スマートフォン、タブレット、パソコン、地デジに関する素朴な疑問や、困ったこと、ノウハウ、コツなどが満載のお助け記事サイトはこちら!