Regular Language description for XML

Regular Language description for XML (RELAX、リラックス) は、マークアップ言語XMLスキーマ言語の一つである。 RELAXは、村田真などの人々によって設計された。 RELAXで記述されたスキーマは、それ自身がXML文書である。 RELAXで書かれたスキーマの記述を、RELAX文法という。 RELAXは、W3C XML Schema と比べて仕様が簡潔である。

RELAXは、RELAX Core と RELAX Namespace の2つの仕様から構成される。 RELAX Core は、一つの名前空間における要素と属性を扱う。 RELAX Core では、W3C XML Schemaで規定された豊富なデータ型を利用することができる。 RELAX Namespace は、複数の名前空間を使ったXML文書を扱う。

RELAX Core は、2000年6月に、JIS TR X 0029:2000 として発行された。 2001年8月に、ISO/IEC Technical Report 22250-1 として承認された。 RELAX Namespace は、2001年7月に、JIS TR X 0044:2001 として公表された。

なお村田などの人々がRELAXを設計したのとほぼ同じ時期に、ジェームズ・クラークも、別の新しいスキーマ言語TREX (Tree Regular Expressions for XML) を開発していた。 クラークと村田は、TREX と RELAX Core に基づいて、この2つのスキーマ言語を統合して RELAX NG を設計した。

RELAX Core で記述されたスキーマを使う例[編集]

一冊の書籍 (book) を記述するための簡単なXML文書のためのスキーマを定義することを、考える。 一冊の書籍は、一つもしくは複数の (one or more) ページ (page) の並びとして定義される。 おのおののページは、テキスト (text) のみを含む。 一冊の書籍を記述するXML文書インスタンスの例を次に示す。

<?xml version="1.0" encoding="UTF-8"?> <book>   <page>これは1ページです。</page>   <page>これは2ページです。</page> </book> 

この書籍のXML文書のスキーマは、RELAX Core では次のように記述することができる。

<?xml version="1.0" encoding="UTF-8"?> <module         moduleVersion="1.0"         relaxCoreVersion="1.0"         targetNamespace=""         xmlns="http://www.xml.gr.jp/xmlns/relaxCore">   <interface>     <export label="book"/>   </interface>    <tag name="book"/>   <elementRule role="book">     <ref label="page" occurs="+"/>   </elementRule>    <tag name="page"/>   <elementRule role="page" type="string"/>  </module> 

ファイル名の接尾辞 (拡張子)[編集]

非公式的な慣習として、RELAXで記述されたスキーマ (モジュール) は、ファイルの名称の接尾辞 (拡張子) として ".rlx" が使われている。

RELAXの実装[編集]

RELAX の妥当性検証器 (RELAXプロセッサ) の実装として利用可能なものの一部を示す。 オープンソースであり無償で利用することができる。

この他、DTD2RELAXというソフトウェアが利用可能である。 このソフトウェアは、従来のDTDのスキーマを RELAX Core のスキーマ (モジュール) に変換することができる。

関連項目[編集]

外部リンク[編集]

実装[編集]