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