スキーマ言語 【schema language】
概要
スキーマ言語(schema language)とは、XMLやSGMLなどのマークアップ言語を用いる際に、要素や属性の定義を行うための言語。特定の目的のための具体的な仕様を持つマークアップ言語を定義・作成することができる。XMLなどの言語はマークアップ言語の基本的な記法などを定めた「メタ言語」であり、それ自体は具体的な要素名や属性名などはほとんど定義していない。これでは具体的な目的のためにマークアップを行うことができないため、スキーマ言語によってどのような要素(タグ)が存在するかを定義し、要素間の関連や要素中で用いることができる属性名や属性値の範囲なども定めていく。
例えば、HTMLはもともとSGMLからDTD(Document Type Definition)というスキーマ言語によって定義された、ハイパーテキスト記述用のSGML応用言語だった(現在は独立した規格として定義されている)。同様に、XMLからは数式記述用のMathMLやベクター画像記述用のSVGなど、様々な対象や分野向けの応用言語が定義されている。
XMLでもDTDが利用できるが、属性値のデータ型が定義できないなどの限界から、新たなスキーマ言語を定義する動きが生じた。Web技術の標準化を行うW3CはXML向けのスキーマ言語として「XML Schema」を定義しているほか、ISO/IECでは包括的なスキーマ定義フレームワークのDSDL(Document Schema Definition Languages)を策定し、その中でRELAX NGなどのスキーマ言語を標準化している。
RELAX NG (RELAX Next Generation/リラクシング)
XML文書の構造を定義するスキーマ言語の一つで、文書形式の標準などを策定するOASISが勧告し、ISO/IECによって標準化されたもの。
XML Schemaと多くの特徴を共有しており、RELAX NG自身がXML記法で記述され、多くのデータ型を使用でき、名前空間や正規表現によるパターン定義に対応している。また、XML記法に準拠しない独自のプログラミング言語風の短縮構文が利用でき、定義を簡潔に記述することもできる。全体的にXML Schemaより仕様が簡素・軽量である点が多くの開発者の支持を得ている。
村田真らのRELAX(Regular Language description for XML)とジェームズ・クラーク(James Clark)らのTREX(Tree Regular Expressions for XML)を統合して定義されたもので、2001年にOASIS(Organization for the Advancement of Structured Information Standards)によって、2003年にはISO/IECによって、DSDL(ISO/IEC 19757)の第2章として標準化された。