07/01/25 13:11:15
>>395
なんか認識を間違えてる気がする。DOMだろうとSAXだろうとStAXだろうとパース手法とデータの扱い方の違いの問題だろうな。
>SAXにおいてスキーマはどのような位置づけになるのでしょうか?
多分欲しい回答は自分で文書型をパースしてそれにしたがってバリデートするって言って欲しいんだろう。
>DOMの場合は解析を終えた状態ですが、
それは内部で既にパース済みだからだよ。既にパース結果をDOMインターフェイスから扱える形になってる。
>SAXはインタプリタですよね?
そこまで高度なものじゃなくてポピュラーなXML APIは全て字句解析機。
トークナイズしてトークンをハンドラにディスパッチする事によってデータを扱う。
SAXの場合はハンドるした生のデータをプログラマが扱うがDOMの場合はDOMインターフェイスから扱えるように加工されたデータを扱う。
SAXの場合はトークナイズしてディスパッチした時点でデータを破棄するがDOMは
"後で"扱うために保持するのでデータの持ち方をどうするかという観点からも加工されている。
データの持ち方までDOMは関与しないからどう持つかは実装次第で必ずツリーかは別だけどな。
多分>>395はPLインタプリタやコンパイラみたいな物を想像しててSAXがインタプリタと言ったんだろうな。
そこまで複雑なものじゃないよ。その中の字句解析機に当たる。
その次の構文解析と意味解析辺りがバリデータと言えるか。
XMLパーサはフレームワークとかじゃなくてただのレイヤーだ。
何やっててスキーマは~って思ったんだ?何をしたいのか聞いた方が早いと思う。
自力でパーサ実装した事ないだろ?