Sablotron Module for Ruby
=========================

これは、Ginger Allianceが開発しているXSLTプロセッサ、「Sablotron」の
Rubyインターフェースです。

Sablot-0.60 と1.6.2以上のRubyに対応しています(いるはずです)。


ライセンスと免責
----------------

このライブラリのライセンスはMPLとGPLのデュアルライセンスです。
いや、デュアルライセンスってなんかめんどくさい感じもするんですが、
元のSablotronとexpatがそういうライセンスになっている(いた)ので、
合わせた方が面倒がないかな、と思って。

各ライセンスの情報については、以下を参考にしてください

  http://www.mozilla.org/MPL  (about MPL)
  http://www.gnu.org/copyleft/gpl.html  (about GPL)

このライブラリは無保証です。何が起こっても、作者のフォローは
期待しないでください。もっとも、運が良ければ対応できるかもしれ
ないので、不具合の報告やパッチは歓迎します。


インストールの仕方
------------------

まず、Sablotron(とexpat)を入手し、インストールしておいてください。
  Sablotron URL: http://www.gingerall.com/

それから、このライブラリをインストールします。基本的には
「いつものやつ」、Rubyの拡張ライブラリの一般的なインストール
方法を実行します。

  ruby extconf.rb
  make
  make install

ただ、これだけでは上手くいかないこともあります。Sablotronや
expatが変なところにあったり、iconvを使いたくなったりする場合には、
オプションで指定します。

   --with-sablot-dir=/path/to/Sablot
   --with-sablot-lib=/path/to/Sablot/libdir
   --with-sablot-include=/path/to/Sablot/includedir

   --with-iconv   (iconvを使う場合に必要)
   --with-iconv-dir=/path/to/iconv
   --with-iconv-lib=/path/to/iconv/libdir
   --with-iconv-include=/path/to/iconv/includedir

   --with-expat-dir=/path/to/expat
   --with-expat-lib=/path/to/expat/libdir
   --with-expat-include=/path/to/expat/includedir


サンプルファイル
----------------

「sample」というディレクトリにはサンプルファイルのディレクトリが
あります。各ディレクトリの中は以下のようになっています。

 sample/basic
    基本的なサンプルのスクリプトとサンプル文書。
    サンプル文書とスタイルシートはW3CのXSLT1.0仕様書から
    取りました。

 sample/encoding
    エンコーディング変換に関するサンプルのスクリプト、doc2html.rb
    (立石さん作成)と、サンプル文書として日本語のサンプル(立石さん
    作成)とフランス語での人権宣言をマークアップしたものです。
          
 sample/handler
    メッセージハンドラのサンプル。


以下のように入力して実行します(「%」はプロンプトなので入力しないで
ください)。

  % ruby sample.rb sample.xsl sample.xml


クラスのドキュメント
--------------------

sablot.rd を読んでください(RD形式です).
日本語じゃなくて(英語でもないかもしれない)すみません。


今後の計画
----------

 * 他のハンドラを実装する
 * テスト(RubyUnitの)とサンプルを増やす。


履歴
----

バージョンが途中でいきなり上がったのは、「元のSablotronの
機能をフルサポートしてなくても、ちゃんと使えてそこそこ安定
している(はず)なら1.0を目指すべき」と、途中で心を入れ替えた
からだったりします。

今の気分では、SAXサポートとDOMサポートはなくてもいいかな、
という感じなので、ドキュメントが揃って、message handlerの仕様に
問題がなくなったと判断した時点で1.0にしようかな、と思っています。
どうしてもSAXかDOMのサポートが必要だ、という方がいらっしゃれば、
実際の使い方のサンプルみたいなものを添えてご連絡くださいませ。


version 0.5.2  (Oct 7, 2001)
 * fix document(command line options).

version 0.5.1  (Sep 9, 2001)
 * change search order of libraries(thanks to KUNISHIMA Takao).

version 0.5.0  (Jun 24, 2001)
 * support message handlers.
 * add more comment of document.
 * add japanese README.ja

version 0.4.1  (Jun 21, 2001)
 * add setEncoding(). (by Takaaki Tateishi)
 * add --with-iconv and --with-expat . (by Takaaki Tateishi)
 * add more samples (by Takaaki Tateishi and me)

version 0.4.0  (Mar 11, 2001)
 * add createProcessor and runProcessor and resultArg.
 * add setBase and setBaseForSchema.
 * fix extconf.rb to add --with-oldgcc option and add messages.

version 0.0.2  (Dec 04, 2000)
 * add --with-sablot-dir option (by Aleksi Niemela)
 * fix minor bug in README (by Aleksi Niemela)

version 0.0.1  (Sep 25, 2000)
 * initial version.


------
TAKAHASHI Masayoshi(maki@rubycolor.org).

