XML
Extensible Markup Language の略で、データの構造をタグで記述するマークアップ言語。
XML (Extensible Markup Language) は、データの構造をタグで記述する汎用的なマークアップ言語です。1998 年に W3C が勧告として策定し、HTML と同じく SGML から派生しましたが、独自のタグを自由に定義できる拡張性が最大の特徴です。データの意味と構造を明示的に表現できるため、異なるシステム間のデータ交換フォーマットとして広く採用されてきました。
XML は豊富な関連技術のエコシステムを持っています。XSD (XML Schema Definition) によるスキーマ検証、XSLT (XSL Transformations) による変換、XPath による要素の指定、名前空間による語彙の衝突回避など、大規模で複雑なデータ構造を扱うための仕組みが整備されています。実務では sitemap.xml (検索エンジン向けサイトマップ)、RSS/Atom フィード (ニュース配信)、SOAP (Web サービスプロトコル)、SVG (ベクター画像)、Office ドキュメント (OOXML) など、多くの分野で使われています。XML 入門の書籍で基礎から学べます。
XML の構文ルールは HTML より厳格です。すべてのタグは閉じる必要があり (<br />)、属性値は必ず引用符で囲みます。大文字と小文字は区別され、ルート要素は 1 つだけです。特殊文字 (<, >, &, ", ') はエンティティ参照 (<, > など) でエスケープする必要があります。この厳格さがパーサーの実装を単純にし、データの信頼性を高めています。
近年は REST API のレスポンス形式として JSON に置き換えられる傾向がありますが、XML が依然として選ばれる場面があります。文書構造の表現力が高い (混合コンテンツ、属性とテキストの共存)、厳密なスキーマ検証が必要、名前空間による語彙管理が必要、既存システムとの互換性が求められるといったケースです。金融業界の FIX プロトコルや医療分野の HL7 など、業界標準として XML が定着している分野も多くあります。
XML と JSON の比較では、XML はタグや属性などの構文要素が多く冗長になりがちですが、スキーマ検証やコメントをサポートする利点があります。JSON はシンプルで軽量ですが、コメントが書けず、スキーマ検証には JSON Schema という別の仕組みが必要です。データ形式比較の書籍も参考になります。
文字数カウントの観点では、XML はタグや属性などの構文要素が多いため、同じデータを表現する場合に JSON や YAML より文字数が多くなります。たとえば <name>太郎</name> は 19 文字ですが、JSON の "name": "太郎" は 13 文字です。API レスポンスのサイズ最適化やデータ転送量の削減を考える際には、このオーバーヘッドを意識する必要があります。