開発ツール
XMLとは?バリデーション方法・基本構文を解説
XMLは、データを構造的に記述するためのマークアップ言語です。RSS、SOAP、SVG、設定ファイルなど多くの場面で使われています。この記事では、XMLの基本構文からバリデーション(妥当性検証)の方法まで解説します。
XMLとは
XML(eXtensible Markup Language)は、W3Cが策定した汎用データ記述言語です。HTMLと似たタグベースの構文を持ちますが、タグ名を自由に定義できる点が大きな違いです。
XML基本構文
<?xml version="1.0" encoding="UTF-8"?>
<bookstore>
<book category="programming">
<title lang="ja">JavaScript入門</title>
<author>山田太郎</author>
<price>2800</price>
<published>2025-01-15</published>
</book>
<book category="design">
<title lang="ja">Webデザインの教科書</title>
<author>佐藤花子</author>
<price>3200</price>
<published>2024-08-20</published>
</book>
</bookstore>XMLの構成要素
- XML宣言:
<?xml version="1.0" encoding="UTF-8"?>— バージョンとエンコーディングを宣言 - 要素(Element):
<title>...</title>— 開始タグと終了タグで囲まれたデータ - 属性(Attribute):
category="programming"— 要素に付加する情報 - 空要素:
<br />— 内容を持たない要素 - CDATA:
<![CDATA[...]]>— パース不要なテキストブロック
XMLとJSONの比較
| 特徴 | XML | JSON |
|---|---|---|
| 構文 | タグベース | キーバリューペア |
| 冗長性 | 高い(開始/終了タグ) | 低い |
| 属性 | サポート | なし |
| コメント | 可能 | 不可 |
| スキーマ検証 | XSD / DTD | JSON Schema |
| 主な用途 | 設定ファイル・SOAP・RSS | REST API・Webアプリ |
Well-formedとValidの違い
Well-formed(整形式)
XML構文のルールに従っているか。すべてのタグが閉じられている、ルート要素が1つだけ、属性値がクォートで囲まれているなど。
Valid(妥当)
DTDやXSDなどのスキーマに対して正しい構造を持っているか。Well-formedかつスキーマに適合している状態。
よくあるXMLエラー
- 閉じタグの不一致:
<title>...</titl>→ タグ名のスペルミス - 属性値のクォート漏れ:
category=programming→ ダブルクォートが必要 - 特殊文字のエスケープ:
&は&と記述する必要がある - ルート要素が複数:XMLドキュメントのルート要素は1つだけ
よくある質問
XMLはまだ使われていますか?
はい。REST APIではJSONが主流ですが、SOAP Webサービス、RSS/Atom、SVG、Microsoft Officeファイル(docx/xlsx)、Androidのレイアウトファイルなどで今も広く使われています。
XMLとHTMLの違いは?
HTMLはWebページの構造を記述する固定のタグセットを持つ言語です。XMLは任意のタグを定義できる汎用データ記述言語で、XHTMLはXMLの構文規則に従ったHTMLです。
大文字小文字は区別されますか?
はい。XMLはHTMLと違い、タグ名と属性名の大文字小文字を厳密に区別します。<Title>と<title>は別の要素として扱われます。