Office XPのXML度を探る

XML機能の核、「MSXML3」

 あらゆるアプリケーションがXML機能を実装する場合に必須のコンポーネントがある。それが「XMLパーサ」だ。あるアプリケーションがXML文書を処理したいときには、その処理をXMLパーサに依頼して、結果を受け取る、という手順を踏む。

 Office XPでXMLサポートをしたということは、Office XPには間違いなくXMLパーサが含まれていることになる。それが「MSXML3」だ。Office XPのXML処理の裏には、このMSXML3が存在する。そこで、Office XPに含まれるアプリケーションのXML機能に入る前に、先にこのコンポーネントについて紹介しておかなければならない。

MSXML3が自動的にインストールされる

 MSXML3はマイクロソフトが開発したXMLパーサであり、以前から単体で無料配布されていた。いままでは、MSXML3を利用したいユーザーが自分でインストールするものだったが、Office XPでインストールされるコンポーネントの中には最初からMSXML3が含まれており、自動的にインストールされる。ちなみに、MSXML3の実体は、WindowsディレクトリのSystemディレクトリ、もしくはSystem32ディレクトリに存在する「msxml3.dll」だ。

 MSXML3では、主に以下の仕様がサポートされている。

 XSLTとは、XML文書を別の文書へと変形するための機能だ。XSLTのスタイルシートを記述することで、XML文書を別のフォーマットのXML文書や、プレーンテキスト、HTML、場合によってはTeXなどの、XMLとは異なる形式への文書へも変換できる。

 XML名前空間とは、大まかにいうとXML文書の中で複数の構造を混在させるための仕組みだ。例えば、XHTML文書の中に、BtoB用に記述されたXML文書を埋め込むなど、異なる文書を形態を1つの文書の中で共存させることができる。

 DOMとSAXは、XML文書を操作するためのAPIだ。アプリケーションがXML文書を読み込んで、その内容を変更したり追加したり削除したり、検索したりする場合には、このAPIを利用する。

 MSXML3についての説明は、マイクロソフトのWebサイトの「Microsoft XML Parser Version 3.0 Release の新機能」で読める。MSXML3は、それ以前のバージョンからいちはやくW3Cの仕様を忠実に反映したものが実装され、リリースされてきた歴史を持つ。Windows上のXMLパーサとして広く使われているコンポーネントだ。XMLへの真剣な取り組みを示す一例といってもいいだろう。

 またMSXML3は、Office XP以前にも、.NET Enterprise ServerのXMLパーサとしても使われている。つまりMSXML3とは、同社のXML戦略の要となる重要なコンポーネントなのだ。

Internet Explorerはバージョンアップしないが……

 MSXML3がどのようにXMLの処理に変化を与えるのかを、MSXML3の導入で最も機能が変化するInternet Explorer 5.0を例に紹介しよう。なぜInternet Explorerが最も機能が変化するのかというと、XML文書を読み込んで表示する機能をInternet Explorerが備えており、いまのところ最もよく使われるXML文書の表示用アプリケーションだと思われるからだ。

■MSXML3単体での導入
MSXML3は、そもそもマイクロソフトから単体で配布されているコンポーネントであるため、Office XPを導入していない環境でもインストール可能だ。これは逆に、Office XPを導入しなくてもMSXML3をインストールすれば、最新のXML仕様に対応した環境をInternet Explorer上で実現できるということである。MSXML3の導入については、「Ask XML Expert」の記事の中の「MSXML3とは何? 何が変わるの?」で解説しているので、興味のある方は参照してほしい。

 筆者はInternet Explorer 5.0が存在している状態でOffice XPをインストールしたが、特にInternet Explorer 5.5に上がった形跡はなく、5.0のままであった。しかし、MSXML3の導入によってXML文書の処理機能には違いが生じている。

 それが顕著に表れるのは、XSLTの処理においてだ。

 MSXML3導入前にInternet Explorer 5.0に実装されていたXMLパーサ(MSXML)のXSLTの機能は、勧告以前のXSLTのワーキングドラフト仕様に沿って実装されていため、XML文書で下記のような宣言をしてから利用することになっていた。最後の「WD-xsl」というところに、この宣言がワーキングドラフトに対応したものだということが見てとれるだろう。

<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">

 しかし、XSLTが勧告として正式な仕様になった段階で、この宣言部分に変更が生じた。勧告に沿って実装した場合、下記の宣言に対応しなければならなくなったのだ。この変更によって、MSXML3はワーキングドラフトに対応した宣言には対応しなくなった(つまり、これはMSXML3の互換性の問題ではない)。

<xsl:stylesheet version="1.0"
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

 Internet Explorerはバージョンアップされなくとも、XMLパーサとしてMSXML3が導入された変更した結果、Internet ExplorerのXML機能は自動的にXSLTの勧告仕様に対応したことになる。

 また、MSXML3はVisual Basicなどから呼び出せるAPIとしてDOM、SAXなどを備えており、独自にXML機能を備えたアプリケーションを構築することができる。このプログラミングに関しては、連載「VBScriptでXMLプログラミング」を参照してほしい。

XML普及に弾みがつくか

 かつて、Windows 95にTCP/IPのプロトコルスタックが標準で含まれるようになったことが、インターネット普及への弾みになった(その一方で、同社はその後、Webブラウザによる市場独占への大きな批判も生んだが)。Office XPにXMLパーサをバンドルしたことは、同じような効果を生むだろうか。

 続いては、ExcelのXML機能を紹介しよう。

ExcelのXML機能は使えるか

Index
Office XPのXML度を探る
  Office XP各製品のXML機能概要
XML機能の核、「MSXML3」
MSXML3が自動的にインストールされる
Internet Exlorerはバージョンアップしないが……
XML普及の弾みがつくか
  ExcelのXML機能は使えるか
Excel以外のアプリケーションでExcelのデータ分析ができる
XML文書にスタイルシートを適用する場合
XML文書を読み込む
コラム Excelで読み込めるXML文書を作ってみる
XML文書の出力
そのほかのXML機能
  XML Schemaに早くも対応したAccess
テーブルの内容をエクスポート
スキーマ情報をXML Schemaで記述
フォームやレポートもXML形式で出力
XML文書をインポートでテーブル化
AccessのXML機能のまとめ
  開発環境もXML対応へ
IntelliSenseがXML対応
Office XP:どれもすぐ使えるXML機能
 

 



XML & SOA フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

HTML5+UX 記事ランキング

本日月間