整形式のXML文書(セイケイシキノエックスエムエルブンショ)とは | 意味や読み方など丁寧でわかりやすい用語解説

整形式のXML文書(セイケイシキノエックスエムエルブンショ)の意味や読み方など、初心者にもわかりやすいように丁寧に解説しています。

作成日: 更新日:

読み方

日本語表記

整形式XML文書 (セイケイシキエックスエムエルブンショ)

英語表記

well-formed XML document (ウェルフォームド エックスエムエル ドキュメント)

用語解説

XML(Extensible Markup Language)は、異なるシステムやアプリケーション間で構造化されたデータを交換したり、設定情報を保存したりするために広く利用されるマークアップ言語だ。HTMLがWebページの見た目やレイアウトを記述するのに対し、XMLはデータの「内容」や「構造」そのものに焦点を当てる。例えば、顧客情報や製品カタログ、あるいはアプリケーションの設定など、あらゆる種類のデータを記述できる。XML文書をプログラムで正確に処理するためには、その記述が特定の厳格なルールに従っている必要がある。この最低限のルールを満たしている状態を「整形式(Well-formed)」と呼ぶ。整形式であることは、XMLパーサと呼ばれるプログラムが文書の内容を読み込み、理解するための出発点となる。もし文書がこの整形式のルールに違反している場合、XMLパーサはエラーを検出し、その文書を一切処理することができないため、システムの連携やデータ利用に支障をきたすことになる。

整形式のXML文書とは、XML 1.0仕様で定められた基本的な構文規則をすべて満たしている文書のことである。これらの規則は、XML文書が人間だけでなく、機械(特にXMLパーサ)によって一貫性を持って正確に解析されることを保証するために不可欠だ。

具体的な整形式の規則は以下の通りである。

第一に、すべてのXML文書は、必ず一つのルート要素を持たなければならない。このルート要素は、文書全体の最も外側に位置し、他のすべての要素を包含する唯一の親要素となる。例えば、<catalog><book>...</book><book>...</book></catalog> というXML文書では、<catalog> がルート要素である。この単一のルート要素が存在することで、XML文書全体が単一のツリー構造として扱われ、プログラムによるデータ操作の基盤が確立される。

第二に、要素の開始タグと終了タグは常に正しくペアになっていなければならない。たとえば、<name>John Doe</name> は正しい記述だが、<name>John Doe のように終了タグがない場合や、John Doe</name> のように開始タグがない場合は整形式ではない。要素が内容を持たない場合は、<empty_tag/> のように開始タグと終了タグを一つにまとめた空要素タグを使用することも許されている。

第三に、要素の入れ子関係は正しくなければならない。つまり、ある要素が別の要素の内部で開始された場合、その内部の要素は必ず外部の要素が閉じる前に閉じられる必要がある。これは「タグのクロスオーバー」がないことを意味する。例えば、<a><b></a></b> のような記述は、<b><a> の内部で開始されたにもかかわらず、<a> が先に閉じているため、入れ子構造が壊れており整形式ではない。正しい記述は <a><b></b></a> となる。この規則は、XML文書の階層構造を明確に保ち、パーサが親要素と子要素の関係を正確に認識するために不可欠だ。

第四に、要素の属性は、その値を必ず引用符(シングルクォート ' またはダブルクォート ")で囲まなければならない。例えば、<item id="001" type='book'> は正しいが、<item id=001><item id="001 type=book"> のように引用符がない、あるいは適切でない場合は整形式ではない。引用符で囲むことで、属性値がスペースを含む場合でも一つの値として扱われ、また属性名と値を明確に区別できる。

第五に、XML文書内で特殊な意味を持つ文字を使用したい場合、それらは対応する実体参照に置き換えなければならない。具体的には、<&lt; に、>&gt; に、&&amp; に、シングルクォート '&apos; に、ダブルクォート "&quot; にそれぞれ変換する必要がある。これらの文字はXMLの構文の一部として特別な意味を持つため、そのまま記述するとパーサが構文エラーと誤解したり、文書の構造を破壊したりする可能性がある。

第六に、XML文書の冒頭には、通常、XML宣言を記述することが推奨される。これは <?xml version="1.0" encoding="UTF-8"?> のような形式で、使用するXMLのバージョン(通常は1.0)や文字エンコーディング(例:UTF-8)を指定する。このXML宣言自体は整形式であるための必須要件ではないが、特にエンコーディングの指定は、異なるシステム間での文字化けを防ぐ上で非常に重要となる。宣言が存在する場合、それは文書の先頭に他の文字(スペースや改行を含む)を挟まずに正確に記述されなければならない。

これらの基本的な規則をすべて満たすことで、XML文書は「整形式」となり、あらゆるXMLパーサによって一貫して解析可能となる。XMLパーサは、文書を受け取るとまずこれらの規則を厳密にチェックし、一つでも違反があれば即座にエラーを報告し、文書の処理を中止する。これは、不正な構造のXMLを誤って解釈し、データ破損や予期せぬシステム動作を引き起こすことを防ぐための重要なセーフティネットだ。

整形式であることは、XML文書が「妥当(Valid)」であることとは異なる概念である点も理解しておくべきだ。妥当なXML文書とは、整形式であることに加え、DTD(Document Type Definition)やXML Schemaといったスキーマ定義に従っている文書を指す。スキーマ定義は、特定の要素や属性がどのようなデータ型を持つべきか、どのような順序で現れるべきか、といったより厳密なデータの制約を規定する。整形式はXML文書がそもそも解析可能な最低限の構文的な条件であり、妥当性はさらにそのデータの「内容」や「意味」が正しいかどうかを検証する、より高度な条件となる。したがって、まず整形式であることが、XML文書を扱う上での第一歩であり、最も基本的な、そして不可欠な要件となる。この基盤がなければ、いかなる高度なXML処理も成り立たない。