・   「Java/XML入門」実習 第2回

XML文書のパーシング 1) SAX

XML文書をパーシングする処理の第1の方法である SAX(Simple API for XML) を紹介します。


・ 準備1(学内向け):
マシンを立ち上げ、UNIX(Linux)かWindowsのいずれかの環境でログインしなさい。
端末エミュレータのウィンドウ(kterm もしくは Cygwin)を開き、 そこで以下の作業をしてください。

・ 準備2:
この後のプログラムの処理の対象となる適当なXMLファイルを用意しておきます。 sample1.xml, sample2.xml, sample3.xml, error1.xml, error2.xml, error3.xml わざと正しくないXMLの記述を含むものも作っておきます。


・ 基本課題1:「Handlerのクラス」

  1. ソースファイル MyErrorHandler.javaMyContentHandler.java を作成しなさい。
  2. コンパイルしなさい。(これらのクラスは単独では実行できません。 次の課題に進みなさい。)

・ 基本課題2:「文書の処理」

  1. ソースファイル ParseTest.java を作成し、コンパイルしなさい。
  2. コマンドラインの引数に準備しておいた XMLのファイル名を与えて、 どんな処理結果が出るか調べなさい。
  3. 正しくない XMLファイルではエラー処理が呼び出されることも確認しなさい。

・ 基本課題3:「属性の情報の取り出し」

  1. ソースファイル MyContentHandler.java に追加して、属性(Attribute)を持つタグの処理もできるようにします。
  2. MyContentHandler.javaをコンパイルし直しなさい。
  3. 引数に sample3.xml を指定して実行してみなさい。

・ 基本課題4:「タグ情報の格納」

  1. ソースファイル MyContentHandler.java にさらに追加して、Hashtableにタグと属性の情報を格納し、 パーシングの後で利用できるようにしてみましょう。
  2. MyContentHandler.javaをコンパイルし直しなさい。
  3. 引数に各サンプルを指定して実行してみなさい。

・ 基本課題5:「J2SE SDK 1.4 の実装クラスを調べる」

  1. ソースファイル ParseTest.java の中のコメント(3箇所)を外し、実装クラスのファイル名を 標準出力に表示するようにします。
  2. ParseTest.javaをコンパイルし直しなさい。
  3. 引数にどれか1つファイルを指定して実行してみなさい。

・ レポート課題:
ここまでの課題が終わった人は、下記の項目を tatsuo宛のメール で報告しなさい。 Subject(件名):は java2 としてください。

  1. 課題5:で表示された SAXParserFactoryの実装クラス名
  2. 課題5:で表示された SAXParserの実装クラス名
  3. 課題5:で表示された XMLReaderの実装クラス名

・ 応用課題1:「多数のタグの処理」

  1. 最初のサンプルよりも複雑で多くの内容を含むXMLファイルを作成しなさい。
  2. それを上記のプログラムで処理して結果を確認しなさい。

・ 応用課題2:「実用的な処理」

  1. 前問で用意した特定のフォーマットのXML文書に対して、 実用的な処理を施す ContentHandlerを作成してみなさい。 (例:文書から特定のキーワードタグの文字列を取り出す、 文字の出現頻度を調べるなど)

・ 応用課題3:「実装クラスのソース」

  1. J2SE SDK 1.4 のソースファイルのディレクトリを調べて、 実装クラスとその内容を調べてみなさい。