第4章:XMLをパースする
第1節:パースとは
・XMLをパースする
この章は本研究で自分がもっとも興味を持った章である。
それでは、まずパーサーというものを定義したいと思う。
パーサー:与えられたテキストを構文解析し、論理的な構造を判断する機構。コンパイラなどでは、字句解析処理後、パーサーによるシンタックスのチェックが行われる。
現在、プログラミング言語はさまざまなものがあり、それぞれある分野に特化している。もしくは、ある分野のプログラミングを構築するにはとても合っている。XMLという言語はいろいろな言語に汎用的に用いることができるという特性を持ち合わせている。つまり、さまざま分野に特化している、もしくは、合っているプログラムに移植することが可能である。これはXML自体が、それ自身では構造化をするだけでなにもできないのであると言う欠点を打ち消しながら、逆に汎用性を持っていることになる。
前章の関連づけて話を進めるとすると、業務ごとの場合はDTDを業種特有のものにして、業種全体で統一化を図れば良かった。この章のパースと言うレベルでは、XMLを用いたい任意のアプリケーションに特化したプログラミング言語を用いればいいということである。
では実際にどうやって、XML文書をパースしてゆくかを次の節で見てゆきたい。
第2節:実際パースしてみる。
この章では、1つのXMLファイルに対して、Internet Explorer(5.0)以上に搭載されているMSXML(Microsoft XML)パーサーを使い、3つのXSLファイルを用意してパースを行ってみたい。
実際にどのように動いているかというと、XMLファイルをXSLTプロセッサが読み込みXSLで異なったスタイルをつけ、異なったXMLを表示させているのである。
ここではXML関連基礎用語集ということで、XMLファイルをサンプルとして作ってみた。内容はXMLの名前、その語源、意味などを構造化したものである。
XMLファイル。表示、図(4-1)

図(4-1)
1つ目のXSLファイルでの表示

図(4-2)
図(4-2)の表現になる。これはXMLファイルのすべてのデータにスタイルをつけ。表示している。
2つ目のXSLファイルでの表示

図(4-3)
図(4-3)の表現になる。これはXMLの名前に対しての意味をスタイルをつけて表現している。
3つ目のXSLファイルでの表示

図(4-4)
図(4-4)の表示になる。これはXMLの用語では頭文字をとった表現方法が多いので、どういった語源から来ているのかを表現したものである。
このように1つのXMLファイルにもXSLなどのパースのしたかによってなん通りもの表現が可能である。ここではMSXMLパーサーというパーサーを使って、パース(解析)して見た。このことは前の章でも述べているが、XSLTに限ってのことではなく、どのようなプラットフォームでもどのようなプログラミング言語でも動作することが可能ということである。
それでは次の節で、どういった操作、環境で解析されるのかを考察してゆきたい。
第3節:操作、環境からパースを考える。
解析後の操作、環境といった視点から、XMLの用途として、大きく3つに分類されると考える。
1)
文書表示にスクリプト言語を使う場合。
2)
Webページ上でスクリプト言語を使う場合。
3)
Javaなどのプログラミング言語を使う場合。
1)、XSLファイル(スタイルシート)の中から、VBScriptなどのスクリプト言語を使ってXML文書を操作するケース。事務資料の記述にスクリプト言語でロジックを実装することはあまりないだろうが、適当な条件づけをすることで、ダイナミックに変化する文書を作成できる。
2)も、1)と同じで、XSLファイルを利用するケース。WebページにXML文書を表示するのが主な目的となる。XSLTも言語なので、XSLTを使ってXMLデータを扱う操作も、XMLプログラミングの一つと言えるかもしれない。
3)は、JavaやC/C++,Visual Basicなどを使って、XMLデータを操作するケース。XML文書を表示するのではなく、XMLをデータとして扱い、何らかのロジックを実装するのが目的である。
いずれも基本的には、タグつきテキストという文字列を操作することにほかならない。タグの処理には、DOM(Document Object Model、以下DOM)などのXML用プログラミング・インタフェースを使うのが一般的である。
DOMは、XMLファイルの内容へのアクセス方法を定義するオブジェクトモデルであり、ファイル中のデータに自由にアクセスし、XMLの文書構造を再構築したり、要素や内容を追加・削除・複写するといった処理も実現することができる。Internet Explorer5.*にはXMLパーサーが含まれており、このパーサーはXMLのDOMを実装している。XMLパーサーはXMLファイルを読み込み、ファイル中のデータにアクセスしてデータを利用できるようにする。
具体的にDOMを使うにはXSLファイルのなかでスクリプト言語を使用する必要がある。使用可能な、スクリプト言語には、VBScript,JavaScript,Jscriptなどがある。