TREX
TREX (Tree Regular Expressions for XML) は、マークアップ言語XMLのスキーマ言語の一つである。 TREXで記述されたスキーマは、それ自身がXML文書である。 TREXは、W3C XML Schema と比べて仕様が簡潔である。 TREXは、ジェームズ・クラークによって設計された。
なおクラークがTREXを設計したのとほぼ同じ時期に、村田真などの人々も、別の新しいスキーマ言語RELAX (Regular Language description for XML) を開発していた。 クラークと村田は、TREX と RELAX Core に基づいて、この2つのスキーマ言語を統合して RELAX NG を設計した。
RELAX NG の文法は、TREX の文法を発展させて設計された。 TREX の文法と RELAX NG の文法は、よく似ている。
TREX で記述されたスキーマを使う例
[編集]一冊の書籍 (book) を記述するための簡単なXML文書のためのスキーマを定義することを、考える。 一冊の書籍は、一つもしくは複数の (one or more) ページ (page) の並びとして定義される。 おのおののページは、テキストのみを含む。 一冊の書籍を記述するXML文書インスタンスの例を次に示す。
<?xml version="1.0" encoding="UTF-8"?>
<book>
<page>これは1ページです。</page>
<page>これは2ページです。</page>
</book>
この書籍のXML文書のスキーマは、TREXでは次のように記述することができる。
<?xml version="1.0" encoding="UTF-8"?>
<grammar xmlns="http://www.thaiopensource.com/trex">
<start>
<element name="book">
<oneOrMore>
<ref name="page"/>
</oneOrMore>
</element>
</start>
<define name="page">
<element name="page">
<anyString/>
</element>
</define>
</grammar>
TREXの実装
[編集]TREX の妥当性検証器 (バリデータ) の実装として利用可能なものの一部を示す。 オープンソースであり無償で利用することができる。
- Sun Multi-Schema Validator (MSV) - TREX、RELAX Core 、RELAX Namespace 、RELAX NG 、DTD 、W3C XML Schema による妥当性検証を行う。サン・マイクロシステムズ、川口耕介
ファイル名の接尾辞 (拡張子)
[編集]非公式的な慣習として、TREXで記述されたスキーマ (パターン) は、ファイルの名称の接尾辞 (拡張子) として ".trex" が使われている。
関連項目
[編集]- RELAX NG
- RELAX (Regular Language description for XML)
- 文書スキーマ定義言語 (DSDL)
- DTD (Document Type Definition 、文書型定義)
外部リンク
[編集]- TREX - Tree Regular Expressions for XML - ジェームズ・クラークのページ
- Sun Multi-Schema Validator (MSV) - TREX、RELAX Core 、RELAX Namespace 、RELAX NG 、DTD 、W3C XML Schema による妥当性検証を行うソフトウェア。サン・マイクロシステムズ、川口耕介