スキーマとはいったい何か

前回までは、DTDもしくはXML SchemaによってXML文書の構造を取り決める方法について見てきました。本カテゴリの最後にスキーマとはいったい何なのかについて考えてみます。

スキーマとは、情報の構造を定義するための記述のことです。DTDやXML Schemaなどは「スキーマ記述言語」もしくは「スキーマ言語」と呼ばれ、XML文書で扱える構成要素、つまりタグの種類や構造を記述することができます。

「スキーマ」という用語はデータベースの世界でよく耳にします。そこで使われる「スキーマ」とは、データベースの構造であり、データベース管理システム (DBMS) でサポートされている形式言語で記述されます。

XMLとはまったく異なる技術であるデータベースですが、「スキーマ」という用語が意味する内容は同じで、どちらもデータをプログラムから独立したものとし、その構造を定義できる、ということです。

整形式文書と妥当な文書」でも触れていますが、XML文書は必ずしもDTDやXML Schemaなどのスキーマ言語を使用して構造を取り決める必要はありません。ですが多くのケースでスキーマ言語を使用して取り決めを行っています。

わざわざ手間をかけてスキーマ言語を利用する最大の利点は、XML文書の妥当性を機械的にチェックできることです。

例えば、AというシステムとBというシステムでXML文書を交換する機能があったとします。その場合、スキーマ言語でXML文書の構造(使えるタグの要素や属性の種類など)を事前に定義しておけば、両システムの担当者間で間違いのない意思統一が図れます。もし、スキーマによって定義された構造と異なっていれば、XMLパーサにより簡単に発見できるというわけです。