RELAX NG 日本語ポータル
$Id: index.html,v 1.5 2001/09/27 01:20:05 kkawa Exp $
作成:川口耕介

このサイトでは、RELAX NGに関する情報を日本語で提供します。 あたらしい情報をお持ちの方(か代わって管理してやろうという方)は、ぜひ ご一報ください。


目次

ニュース
RELAX NG関連の新しい出来事
RELAX NGの勉強
新しくRELAX NGを勉強する人のためのガイドです
ツール
RELAX NGを実際に使うためのツールです

ニュース

Jingがバージョンアップ (2001/09/26)
James Clarkの手によるRELAX NGバリデータ「Jing」がバージョンアップしました。今度のバージョンアップで、現在の仕様に100%対応したそうです。RELAX NGユーザー必携のツールです。
アナウンス(英語)
ダウンロード(英語)
Windows用実行ファイルだけほしい人はこちら
RELAX NG日本語文法が公開 (2001/09/26)
RELAX NGの文法の基本的な部分はそのままに、キーワードだけを日本語に入れ替えるという文法です。英語が苦手な人にお薦め(?)です。村田氏作。現在、ボランティア募集中です。
RELAXユーザーMLでの関連スレッド
詳細情報
RELAX NG文法からJavaへ変換する新ツールが公開 (2001/09/05)
岡嶋大介氏の手によるツールで、RELAX NG文法を読み込んで、その文法に従った文書をJavaオブジェクトにパースするためのJavaソースコードを生成するツールです。XML文書を読み込んでJavaで処理したい時にとても便利です。
アナウンス
詳細情報
RELAX NGの仕様が確定 (2001/08/11)
これから2ヶ月間は公開レビュー期間ということで、実装者や利用者からのフィードバックを受け付ける期間です。この間特に問題が見つからなければ、現在の仕様のまま正式なOASIS公認の仕様になります。コメントは、英語で relax-ng-comment@lists.oasis-open.org に送りましょう。(場合によっては、日本語で relstdj@xml.gr.jp に送ってもらえれば、できる範囲で私が英訳して送ります。)

RELAX NGの勉強

RELAX NG チュートリアル
RELAX NGは覚えるのがとても簡単です。まずは、チュートリアルを読むと良いでしょう。
RELAX NG ワークショップ (英語)
チュートリアルが終わったら、米倉氏の手による「RELAX NG workshop」もあります。これを使うと、手を動かしながら実際のツールを使ってRELAX NGをいじることができます。
RELAX利用者日本語メーリングリスト
質問などが出てきたら、ここへ質問するとよいでしょう。 時々、とても難しいことが議論されている時もありますが、気にしなくてもいいと思います。 ちょうど、今、「RELAX NGのFAQを作ろう」という話が出ているので、質問をしてFAQの作成に協力しましょう。
RELAX NGで書かれたスキーマの例を見る
実際にRELAX NGで書かれたスキーマを見ると、参考になることがたくさんあるはずです。人の書いたスキーマも読んでみましょう。

ツール

RELAX NGに対応しているツールは現時点でもかなりたくさんあります。

バリデータ

バリデータ(またはベリファイヤ)とは、RELAX NG文法とXML文書を受け取って、文書が正しくかかれているかをチェックする、一番基本的なツールです。

VBRELAXNG (英語)
Visual BASICで書かれたWindows用のバリデータです。 ホームページは英語でかかれていますが、プログラム自体には 日本語版もあります。米倉氏作。
Jing (英語)
Javaで書かれたバリデータです。作者のJames Clarkは業界では超有名人なのに加えて、この人はRELAX NGの仕様を制定している委員会の委員長でもあります。つまり、仕様を一番良く知っている人が作っているバリデータです。「Javaなんて良く分からないしただ検証したいだけなんですが」という場合には、 Windows用の実行ファイルだけダウンロードするとよいでしょう。
サン・マルチスキーマバリデータ (MSV) (英語)
Sun Microsystemsが作っているRELAX NGバリデータです(SunもRELAX NGの委員会に参加しています)。ホームページは英語ですが、プログラム自体は日本語に対応していて、エラーメッセージなどもちゃんと日本語で表示されます。実は私が実装しました。

データバインディング

RELAX NGスキーマから(主にJava)ソースコードを生成するツールです。生成したソースコードを使って、スキーマに従った文書を読み書きすることが出来ます。

Relaxer
Relaxerは、現時点ではRELAX NGを部分的にサポートしています。スキーマを加工しなくても利用できるのが特徴で、Javaソースコードを生成するほかにも様々な機能があります。浅海氏作。
RELAXNGCC
RELAXNGCCは、YACCやJAVACCに近いツールで、XML文書を読み込むのに使えます。生成するソースコードをかなり柔軟に変更できるのが特徴ですが、スキーマに情報を追加する必要があります。岡嶋氏作。

スキーマ記述関連

スキーマを書く時に便利なツールなどです。

RELAX NG 短縮記法 (英語)
RELAX Coreにあったoccurs属性や、XML SchemaのminOccurs/maxOccurs属性などを取り入れた拡張文法を提案しています。この拡張文法から通常のRELAX NG文法に変換するためのツールもあります。これを使うと、RELAX NG文法を短く簡潔に書けるようになります。拙作。
RELAX NG オブジェクト指向拡張文法 (英語)
XML Schemaに見られる、型や継承の概念を使った文法を提案しています。この拡張文法から通常のRELAX NG文法に変換するためのツールもあります。これとRELAXNGCCやRelaxerを組み合わせて面白いことができそうです。村田氏作。
RELAX NG 非XML文法 (英語)
「簡潔に書く」という目標を追求した結果、遂にXML文法を捨ててしまった記法です。この記法から通常のRELAX NG文法に変換するためのツールも提供されています。新しい文法を覚えないといけませんが、大変短く書けます。James Clark氏作。
くつろぐための構文
RELAX NG構文のキーワードを日本語に置き換えた文法です。「英語のキーワードを覚えるのがちょっと」という人には大変お薦めできます。村田氏作。

スキーマ変換

今手元にあるRELAX NG以外の形式で書かれたスキーマを、RELAX NG形式に変換するためのツール群です。既にスキーマを持っている人向けです。

DTDinst (英語)
DTDからRELAX NGへ変換するツールです。DTD→RELAX NGはこれが今のところ唯一かつ最強のツールでしょう。大変見事な変換をします。James Clark作。
RELAX Core → RELAX NG (英語)
RELAX CoreからRELAX NGへと変換するXSLTスタイルシートです。単なるスタイルシートなので、動かすにはちょっとした知識が必要かもしれませんが、 RELAXユーザーML で「使い方がわからない」と言えば、誰か教えてくれると思います。James Clark作。

実験プロジェクト

まだツールの形にはなっていませんが、将来が期待できる「種」たちです。興味を持ったら、ぜひ RELAXユーザーML で発言してみてください。

日本語RELAX NG文法プロジェクト
スキーマ自体を全部日本語で書いてしまおうというプロジェクトです。XMLで書くことにこだわるか、いっそXMLを捨てて自然言語に近い形で書くようにするか、主に2つの路線があります。ここここここを参照してみてください。