2001年12月3日にOASISよりXMLスキーマ言語RELAX NG1.0が発表されました。

RELAX NGはJames Clark氏(世界のXML界の重鎮)と村田 真氏(日本XML界の重鎮)の
共同作業により産み出された世界で一番強力なXMLスキーマ言語です。

0.RELAX NGを支持する理由

RELAX NGを芳醇なワインとするなら、XML Schemaは闇鍋です。これが理由です。
1.RELAX NG登場の経緯
村田真氏が2000年秋にRELAXを発表、2001年春にJames Clark氏がTREXを発表、両氏
がそれぞれ自分の作成したスキーマ記述言語を軸とした展開を図るように思われた矢先、両氏
の間で会合が行われ、OASISの技術委員会にてRELAX COREとTREXの融合化の作業が行
われることとなり、RELAX NG1.0の発表へと結実しました。

この背景にはW3Cのお墨付きを持ちながら欠点だらけのXMLスキーマ記述言語であるXML Schema
の存在があります。



2.XMLスキーマプラットフォーム「RELAX」
RELAXはそれ自体がモジュール化されているため、状況に応じた使い分けが可能です。

1)文法及び構文
  スキーマの基本的な文法(構文)等を定義しています。
  RELAX NG(あるいはRELAX CORE)がここを担当します。
2)名前空間
  名前空間の取り扱いに関する構文を定義しています。
  RELAX NAMESPACEがここを担当します。
3)データタイプ定義
  データタイプの取り扱いに関する拡張を定義します。
  RELAX DATAがここを担当する予定です(仕様策定中?)。
3.RELAX NGの特徴

1)RELAX NGはRELAX COREから生け垣オートマトン理論という数学的理論体系を、
 TREXから柔軟な構文を受け継いでいます。
2)RELAX NGはRELAX COREの持つ機能をすべて包含しています。


4. RELAX NGの資料
   1)日本語チュートリアル

5.Q&A

   1)僕はオブジェクト指向が大好きなので、W3C XML Schemaの継承が手放せません。
    RELAX NGでは継承を扱えないのでしょうか?
    
     正式な仕様ではありませんが、RELAX NGの作者の1人である村田真氏に
    よりRELAX NGのオブジェクト指向拡張文法が提案されています。標準の
    構文への変換が保証されています。また、標準の構文へと変換するための
    XSLTも公開されています。
   
   2)RELAX NGでは W3C XML Schemaにおけるmin-occursのようにスキーマの記述を
    短縮するための文法はないのでしょうか?

     正式な仕様ではありませんが、OASISのRELAX NG委員会のメンバーである川口耕介
    氏により RELAX NG短縮記法が提案されています。標準の構文への変換が保証されて
    います。また、標準の構文へと変換するためのXSLTも公開されています。

番外.最新情報

   こちらです。おいおい、このページに反映します。