拡張可能なマークアップ言語(XML)について学びましょう。初期の Web データ交換標準から、現在の複雑なドキュメント構造や業界標準プロトコルの中核としての役割まで。
XML (Extensible Markup Language) は、電子ドキュメントを構造化するためのマークアップ言語です。データの「表示」に焦点を当てる HTML とは異なり、データの「内容」と「持ち運び」に焦点を当てています。
Web API では JSON が主流ですが、XML は多くの重要な分野で依然として不可避な存在です。
Java Spring、Android レイアウト、Maven (pom.xml) などの大規模なプロジェクトの標準形式。
SOAP、SAML、RSS/Atom プロトコルや、Microsoft Office ドキュメント (OpenXML) の基盤。
異種システム間で複雑なデータを交換するための、高い厳密性と検証能力(Schema)を持つ形式。
なぜ XML は依然として複雑なシステムに選ばれるのでしょうか?
ユーザーが独自のタグを定義でき、あらゆる業界や分野のデータ要件に対応可能です。
構造が非常に明確で、タグがデータの意味を直接表すため、可読性が高く、長期保存に適しています。
DTD や XSD (Schema) による強力な型チェックにより、データの整合性と正確性を保証します。
数十年の歴史を持つ成熟したツールチェーン(XPath、XSLT、DOM 等)により、高度な検索と変換が可能です。
XML 構文は HTML よりも厳格であり、完全に整形された(Well-formed)ものでなければなりません。
すべての XML ドキュメントは、他のすべての要素の親となる、唯一のルート要素を持つ必要があります。
すべての開始タグには、対応する終了タグ(<note></note>)または自己終了タグが必要です。
XML では、属性値は常に引用符(シングルまたはダブル)で囲む必要があります。
タグは開始順の逆順で閉じる必要があります。例:<b><i>テキスト</i></b> は正しいです。
<?xml version="1.0" encoding="UTF-8"?>
<root>
<item id="1">
<name>Sample Item</name>
<properties>
<active>true</active>
<value>42</value>
</properties>
</item>
</root>XML を他の人気形式と比較し、その利点と限界を理解しましょう。
| 特性 | XML | JSON | HTML | YAML |
|---|---|---|---|---|
| 主な用途 | データの保存と持ち運び | 軽量なデータ交換 | データの表示 / UI 構造 | 設定ファイル / 可読性 |
| 構文の厳格性 | 非常に高い(要記述) | 高い | 低い(寛容) | 中(インデント依存) |
| コメントへの対応 | 可能 (<!-- -->) | 不可 | 可能 (<!-- -->) | 可能 (#) |
| データ検証能力 | 強力 (Schema/XSD) | 標準的 (JSON Schema) | なし | 標準なし |
高品質で保守しやすい XML を作成するためのガイド。
ドキュメントの先頭に <?xml version="1.0" encoding="UTF-8"?> を追加してください。
複数行や複雑なデータには子要素を使い、単純なメタデータには属性を使います。
タグ名は記述的にし、一貫したケース(kebab-case や camelCase 等)を使用してください。
公開データや本番データには、常に XSD または DTD を提供して形式を強制します。
決してそうではありません。Web API では JSON に取って代わられましたが、エンタープライズシステムや文書作成ソフト、厳密な検証が必要な分野では依然として不可欠な存在です。
これらは親戚関係です。両方とも SGML から派生しました。XML はデータを「記述」し、HTML はデータを「提示」します。
Schema は定義済みのルールに従っているか自動的にチェックし、システム間連携時のエラー処理コストを大幅に削減します。