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 のスキーマ (モジュール) に変換することができる。

関連項目

外部リンク

実装

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.