Eric の RELAX NG 本

RELAX NG asin:0596004214RELAX NG: A Simpler Schema Language for XML、実は後半部分は精読できてないのだけど、とりあえず書評を書いてみた:

本書は RELAX NG を解説した現在唯一のもの。RELAX NG は特定の企業や団体ではなく、インターネットを通じて緩く連合した XML 技術者が中心となって設計、標準化された経緯があり、ネット上には入門に適した小規模なドキュメントが散見されるが、本書のようにまとまった分量のものは初めてであろう。

RELAX NG の仕様書は RELAX NG の開発者の側(各種処理系を設計・実装する側) に立った、いかに validation するかというコンピュータサイエンス寄りの内容になっていて、RELAX NG のユーザ(スキーマを読んだり書いたりする側)にはとっつきにくい。そのためユーザの多くは OASISRELAX NG チュートリアルRELAX NG を学んでいる。このチュートリアルは川口耕介氏による邦訳があり、日本人ユーザのほとんどはこれを通じて学んでいるのが現状だろう。

しかし、このチュートリアルは分量上の制限もあって、あまり触れられていない部分や深く掘り下げていない部分がある。例えば interleave の仕様の詳細はチュートリアルからは理解しにくいだろう。それを知ろうとすると仕様書にアクセスする必要がありぐっと敷居が高くなる。RELAX NG ユーザのために書かれていて、それでいて正確かつ詳細に解説する本書のようなドキュメントは待ち望まれていたものだ。

本書は図書館の蔵書目録を題材に RELAX NG の様々な機能を解説する。説明のために個別に用意された恣意的なサンプルではなく、ある程度実践的なスキーマを一貫して再利用する本書のスタイルはストーリー性もあり、学習者がとり組みやすい。特に個々の機能がどういう目的で使われるのかといったあたりが理解しやすいのが良い。これは単なる文法解説にとどまらない、より良いスキーマを書くための実践的なテクニックが学べるということでもある。

サンプルコードでコンパクト文法を常に並列して提示しているのも本書の特徴だ。その圧倒的な読みやすさ・書きやすさから、RELAX NG ユーザのコンパクト文法に対するニーズは大きい。最初からコンパクト文法をメインに使うつもりの初学者も本書なら早い段階からコンパクト文法で例題を試すことができる。

また、本書には XML Schema データ型の詳細な解説とリファレンスを含んでいる。RELAX NG では高度なデータ型については XML Schema Pert 2 のデータ型を利用するが、その詳細については今まで XML Schema のドキュメントを参照するしかなかった。その点、本書は詳細な解説(正規表現の詳しい解説もある)があり、しかもそれが RELAX NG で利用することを前提にした書き方で書かれているところが優れている。

これから RELAX NG を学ぼうとする人、ネット上のドキュメントなどで一通りは学んだが実際にスキーマを書くとなるとまだ迷いや疑問が残る人、DTD も含めてスキーマ言語には全く初心者だがせっかくなら良い言語で学びたい人(本書は DTD の知識がなくても読める)、そして XML Schema に疲れて落ち込んでいるそこのあなたに、本書は文句なしにお勧めの一冊である。

Amazon に投稿してみました。ベタ誉め過ぎか? でも実際これと言って欠点ないんだよね。ということで邦訳の出版が待ち遠しいわけですが、、、っていうか実は僕が個人的に翻訳を進めています。原書のオンライン版は FDL ライセンス (GPL のドキュメント版みたいなの)で公開予定なので勝手にやってます。出版には至らなくてもいずれ日の目は見るはず。。。

とはいえ僕の英語力はかなり DQN なので訳の品質は怪しいし仕事のスピードは超遅いしで、本当はもっと英語の出来る人がささっと訳して出版してしまった方が世のため人のためのような気も。でもオライリージャパンの方では邦訳の出版企画が通ってないみたいだし、オンライン版の方も現在ドラフト版のみで決定稿への更新がまだで再配布制限がかかったままってことで、今のところはまぁいいか。。。



idトラックバック: