指向性メモ::2004-07-28::rNoteを改造してみようと試みた

ページ情報
制作日
2004-07-28T05:13:25+09:00
最終更新日
2004-07-28T05:13:25+09:00
ページ内目次

rNoteが各地で好評なようなので、SDF対応版を作ろうと目論んでみた。

が、名前空間まではサポートしているのかと思いきや、ソースを読んでみるとそうでもない感じだった。文字列の単純な比較でXMLをパースしているようだが、どうもこれは将来的には危ない感じがする。XHTMLだけで終わるなら要素名に制限を持たせることで何とかなるだろうが、名前空間が入り乱れると恐ろしいことになりそうだ。

HIMMELの場合、XSLTそのものなので当たり前だが、スキン的存在である「S3」はXMLを完全にサポートしている。またPHPでの操作も<br/><br />に変換するようなごく一部(本当はこれですら嫌)を除いて、DOM以外は使っていない。一々面倒なDOMをわざわざ使うのはXMLデータの操作がそう簡単には行えないからだ。

まず名前空間の扱いが難しい。接頭辞から名前空間をルックアップして処理していくのはかなり大変だ。正規表現を使い文字列比較で処理していくとCDATAセクション内が壊滅する可能性もある。こういった部分に対応しつつ、全て自分で実装していくと、恐らく最終的にはDOMやXSLと同じものが完成するのではないだろうか。言うまでもなく、最初から標準化されているDOMやXSLTを使った方が早い。

rNoteは「XML版blosxom」、というよりも、「(データの区切りにXML的タグを使った)blosxom」に近いと思う(「サイト全体の構築」という点は別にして)。データ形式自体はXMLだが、残念なことに、rNoteはXMLを処理し切れていない。

これから先XMLが普及していくと、XMLを完全にサポートしつつ、ライトユーザーでも手軽にカスタマイズできるような仕組みが必要になっていくのかも知れない(HIMMELはXSLT未経験者には混乱をもたらすことが既に分かっている)。DOMやXSLTをライトユーザーに教え込むのはなかなか大変だ。困ったことに、私にはDOMやXSLT以上に簡単に使えそうな仕組みが思いつかないのだが……。

ところで、2004-01-01T12:00:00はW3C-DTFとしては不正だ。W3C-DTFで秒まで表記する場合(Complete date plus hours and minutes)にはタイムゾーンの明示が必要になる。

Comments

Trackbacks

Trackback Ping URI

http://yudai.arielworks.com/memo/2004/07/28/051325.trackback

末尾に「5 + 0」の計算結果を繋げて下さい。例えば計算結果が「17」の場合、「051325.trackback17」です。これは機械的なトラックバックスパムを防止するための措置です。

Post a comment

Name (optional)
Email address or URI (optional)
Do the math below (required to filter comment spams)
5 + 0 + 8 =
Message (required)
Submit
連絡先、リンク、転載や複製などについては『サイト案内』をご覧ください。Powered by HIMMEL

I ♥ Validator