Xalan-C
今日は,XSLTのデバッグをする*1。XMLで出力したログファイルをJavaScriptをごりごり使ったXHTMLに変換するものである。つまり1つのファイルにXSLTとXHTML,そしてJavaScript,さらにCSSが1つのファイルに書き込まれている。変換後のHTMLにも少し難があったのでそれを修正し,保守性の都合からJavaScriptとCSSを別ファイルに分離してから作業を行う。JavaScriptはFireFoxのコンソールをみながらエラーを消していくのが楽である。
XSLTでXMLをXHTMLに変換するスクリプトというのは,1つのXMLファイルの中にXSLとXHTMLという2つの異なる仕様が混ざりあっていて,そして出来上がった変換ファイル自体が全体として整形されたXMLになっているという,XMLマニア垂涎の(そんな人がいるかどうかは別として)シロモノである。先入観を出来るだけ捨て自分が触っているテキストファイルを,裸の心で眺めてみると「どうしてこんな仕様になってしまったんだろう…」と思わずうってなる。少なくとも知的でエレガントではないような気がする。
この辺りの開発には Xerces,Xalan,SpiderMonkey を利用し,パッケージは全部 DarwinPorts で取得した。
% sudo port install xalanc % sudo port install spidermonkey
などとするだけOK。ちょっと前まではよくパッケージの取得に失敗していたが,最近 port が調子いい。
*1:厳密に言うと,ソースのXML,JavaScript,XSLTのどこに問題があるか分かっていなかったので,10MBのXMLログファイルの解析や,JavaScriptのデバッグもした。何しろJavaScriptでJavaScriptが埋め込まれたページを自動生成とかするHTMLを吐くXSLTなわけで,もう本当にいかがなものかと…(ぶつぶつ)