2003年09月11日 木曜日

RelaxNGの勉強をしようかと。

今回のコンテンツの見直しで、元々やろうと思っていたXML化の推進をしないとやっていられない状況になってきました。ぼくはXHTML 1.0のFramesetが嫌いな人なので、今のようなページ構成になっています。しかしそれぞれのページで部品として共用している部分を書き換えることになると、手修正だけではやってられないと言うことで、XMLで書いた部品を寄せ集めてXHTML 1.1(or XHTML 2.0?)にレンダリングした方が良さそうです。
最近の流行りであれば、真面目にXMLに突っ走るならCocoon 2みたいな物を使うか、よりお手軽なZope、もっとお手軽な方向としては、XOOPSのようなWeb Applicationか、がらっと変えてtDiaryみたいな日記ツールとかblogなツールを普通、選ぶのだろう。
ただ今のところ動的なサイトにしたくないのと、JavaやpythonPHPに依存できない環境であること。Java以外は一生コードを見ないですむなら見たくないという個人的な偏見と趣味とRubyPerl(これも使いたくはない)はサーバで使える環境にあるので、選択肢はこれらのどっちかですな。
ただCGIなどでページをDynamicにページを生成するとCGI自身のメンテがかったるいので、WikiWiki Cloneは却下で、結局今のところはStaticなページ構造にして置いた方がよいかもと個人的に思うので、XML文書を書いてXSLTでXHTMLに変換するのがよいかなと思っている。最終的な目標はサーバにXMLファイルをいっぱい置いておいて、半動的生成を目指そうかと思うわけだが、しばらくはXMLで書いて、makeでStaticに作ってしまえと言う感じである。
XMLで適当に文書を書くと自分で作ったXML文法(XMLボキャブラリというのかな)を忘れてしまうと言う問題があり編集の便利さを追求するためにも、僕の場合は必ず文書型定義(DTD)を書く必要がある。ただ_DTD自身がXMLじゃないやん_とか_いまさらDTDなんて勉強しても仕方ないやん_ということで、何かしらのSchemerを勉強せねばと言うことになったわけだ。こういう用途でThe World Wide Web Consortium (W3C)御謹製のXML Schemaを使うほど暇人でもないので、Relaxを勉強かと思ったのである。いろいろ調べているうちに、Relax NGのページやTutorialを眺めていると、こっちの方がえらく簡単ということで_勉強する気になった。_(ようやく表題の話になった。)
ということで、いったんどういう事を書いているのか再分析して、Relax NGパターンを書き下して、DTDを生成してみようと思う。