cxmlのサイトをみてみると、SAXのコーナーが他の機能の説明の基礎になっ
ているようだ。まあDOMをつくるのにもSAXを使うからなぁ。cxmlのSAXコー
ナーを読んでみる。
http://common-lisp.net/project/cxml/sax.html
むぅ。そもそも、SAXって何だ? わからなくなった。なんかもやもやして
いるのは、SAXってparserじゃなかったっけ?ってこと。XML文書を読んで
いくにしたがってeventがあがって、そのeventにたいしてcallbacksを定義
しておくっていう構造だった気がするのだが。cxmlではsax eventをユーザ
がいろいろ生成できてconstructorに使えるような記述がある。
そもそものSAXを調べる。
つ http://www.saxproject.org/
---
** 規格化はされていない。デファクトである。
** もともとはJava用のAPI。version 2.0.1ではいろいろな言語が対応し
ている。
** SAXの仕様はJava用の実装そのものである。なので、他の言語で何が
SAXかは、その言語での実装者が決めることだ。おお、すごい。
** Java APIをみてみる。Javaはよくわからないが、そもそもSAXに対する
私の理解は間違ってなさそうだ。(確信はもてない)
---
というわけで、もしcxmlのsaxではユーザがsax eventsを生成できるなら、
それはcxmlにおけるSAXの独自な特徴なのだろう。
cxmlのsaxに戻る。
cxml:parseの説明を読むが、正直何を言ってんだかさっぱりわからない。
ソースを読む。
ああ、わかってきた。runeというのはUnicodeの取り扱いが処理系毎に違
うことを吸収するための抽象化なんだ。なので、compile時に処理系毎に
何がrune?というが選択されてcompileされるようだ。今日は力尽きたので、
次回この理解が本当に正しいかどうかソースを読み込む。
こつこつ。
0 件のコメント:
コメントを投稿