スキーマ言語(
スキーマげんご)とはXMLや
SGML等で文書を作成する際、その文書構造を定義する言語を言う。
「
スキーマ」とは本来
データベースの構造定義であり、
リレーショナルデータベースの場合は
テーブルの各項目のデータ型、他の
テーブルとの関連性などを定義したものを指す。XML文書等では、同様にXMLで作成された各要素の互いの関連性や個々の文書全体での位置付け等の定義を指す。
本来、文書は構成要素の集合体であるが、一定の構造を持たなければ単なる要素の寄せ集めでしかなく、規則性や体裁といった構造を得て初めて意味のある有用な文書となる。XMLや
SGMLは文書の各要素を作成するメタ言語であり、文書構造自体を定義する事はできない為、このままでは扱いにくい。そこで構造を定義する言語が必要となり、開発されたのが
スキーマ言語である。例えば、
SGMLでは
DTDが
スキーマ言語として使用されていた。XMLが
SGMLから派生した関係からXMLでも
DTDが使用されていたが、
DTDは文法がXMLと全く異なっている事や、要素のデータ型を定義する事ができない事等から、新たに
XML Schema や、
RELAX、
RELAX NG が開発されている。