SAX(6) サンプルプログラムの作成(1)

2006年01月29日(日)更新


SAXを使ったプログラムの基本的なイメージ

さらら: 前回、簡単なJavaプログラムを作成してみて、Javaプログラム作成の準備がひととおり整ったねのよね。

たけち: そうだね。じゃ、今回からSAXを使った簡単なプログラムをやってみたいね。

さらら: えぇ。楽しみだわ。

たけち: 作成に入る前に、まずは、SAXを使ったプログラムの基本的なイメージについて知っておきたいと思うんだ。

さらら: あっ、そうね。SAXを使ったプログラムっていっても、実際にはなにをしていいか、まだイメージがつかめてないもの。

たけち: そうそう。じゃ、次の図を見て。

SAXを使ったプログラムの基本的なイメージ


SAXを使ったプログラムの処理の流れ

さらら: あらら、四角がずいぶんたくさん書いてあるわね。。。。

たけち: それぞれの四角が、プログラムの単位を表していてクラスって呼んでるんだ。それぞれには名前がついていてるのがわかるよね。

さらら: え〜っと。。。XMLReaderFactoryとか、XMLReaderとか。。。これが名前なのかしら?

たけち: そうそう。その名前のことをクラス名って言うんだ。

さらら: へぇ〜。よくわかんないけど。。。でも、こんなに作らなくちゃ、いけないの??

たけち: あっ、この図に描いている全部を作成するわけじゃないんだ。今回僕たちが作る部分は、上の図で薄いグリーンで示した場所
  SAXSample1 と SampleSAXHandler1
の二つのプログラムなんだよ。そのほかは、これまで準備したJavaの環境やXercesに含まれているんだ。

さらら: あっ、そうなんだ。

たけち: 図に示したように@からFまでの流れについて、確認してみようね。

さらら: えぇ。


@XMLReaderの作成を依頼します

  1. SAXSample1がXMLReaderFactoryに、XMLReaderの作成を依頼します。

A作成します

  1. XMLReaderFactoryがXMLReaderの作成をします。
  2. XMLReaderFactoryが作成したXMLReaderを、依頼元のSAXSample1に教えます。

BSampleSAXHandler1を登録します

  1. SAXSample1が、SAXReaderFactoryから教えてもらったSAXReaderに、SampleSAXHandler1を登録します。

たけち: これで、SAXReaderがXMLデータをパースして要素などを見つけたときに、僕たちが作成した(次回から作成します)SampleSAXHandler1を呼んでもらえるようになるんだ。

さらら: そうなんだ。。。

たけち: あとは、実際にXMLファイルを指定して、パースしてもらうんだよ。

C指定したファイルのparseを依頼します

  1. SAXSample1が、読み込んで欲しいXMLファイルを指定して、SAXReaderに、XMLファイルの読み込みとパース処理を依頼します。

D指定されたファイルを読み込んでparseします

  1. SAXReaderが指定されたXMLファイルを読み込み、パース処理を開始します。

E要素などを検出する都度、対応するプログラムを呼び出します

  1. SAXReaderが読み込んだXMLファイルパースし、含まれる要素などを検出する都度、登録されたSampleSAXHandler1の該当するプログラムを呼び出します。

F要素などの検出に対応した処理をします

  1. SampleSAXHandler1が、検出された要素などについての処理をします。

たけち: どんな処理をするかは、SampleSAXHandler1にどんなプログラムを記述するかによって決まるんだね。

さらら: そっか。これは私たちが書かなくちゃどうしようもないのね。

たけち: そうなんだね。

さらら: なんとなく、流れは分かったような気がするけど、実際にどうプログラムを書いていったたらいいのかは、まださっぱりわかんないわ。

たけち: そうだね。具体的なプログラムの作成については、次回からはじめよう。そのときに、ひとつひとつの処理について詳しく見てゆくから心配しないでいいよ。

さらら: うん。ありがとう。よろしくね。

→次回は、SAXSample1の説明です・・・ (^ ^;