エンタープライズ:特集 2003/09/11 18:30:00 更新

Microsoft Office Systemアプリケーションレビュー
特別編 Office 2003とXML 〜InfoPathという武器〜 (2/4)

いきなりOfficeユーザーを訪れるXML

 情報は自由を求めて動き始める。従来、WordやExcelで作成したデータは、プリンタで印刷され、コピー機などで複製されて関係者に配布されていった。それがネットワークの普及により、電子メールやファイルサーバを通して、ファイルがあちこちに届けられるようになった。だが、時代の要求はそこで止まってはいない。次に出てくる要求は、Officeアプリケーションでしか開けないデータ形式では困る、ということである。

 Officeアプリケーションは、情報を扱うための1つの手段にすぎない。他にもいろいろな手段があり、必要に応じて使い分けられている。例えば、大規模なデータベースを作るときに、Accessで構築することは行われない。そのためには、もっと適した大規模データベースソフトがあるし、実行環境もWindowsに限らず、より大規模なワークステーションやメインフレームが使われる場合もある。そのようなWindowsでもOfficeでもないシステムも含めて情報が自由に動き回れるようにしたい、というニーズが生まれつつあるのである。このような特定の環境に依存しないデータの交換に使われる手段としては、XMLが使われることが増えていくことが予想される。

 このようなニーズが組織の中で明確に固まってくると、当然、Officeユーザーにもそれに対応することが求められる。ある日突然、「このデータ表はExcelのファイルで提出することになっていたけど、来月からXMLファイルで提出することに決まったよ。Office 2003はXML対応だからすぐできるよね。じゃあよろしく」などと言われることになるかもしれない。

 このような場合のXMLファイルというのは、ただ単にExcelからXMLスプレッドシート形式で保存したファイルのことを意味していない。あらかじめ決められたスキーマというものがあって、それに従って作成されたXML文書でなければならない。スキーマはさまざまな情報がどのような形で並べられているかを定義するものである。それは、どのような情報をどう記述するかを決める側が作成する。一般的なOfficeユーザーがスキーマを作成する立場になることは多くないと思うが、誰かが作成したスキーマに沿ってXMLファイルを作成せよ、と命じられる可能性は決して小さくはないだろう。

 しかし、いきなりスキーマと言われても分からない人も多いだろう。だが、そのような状況で、分厚く難しい本を読んで勉強することを回避して、何とかするための手段をOffice 2003が提供してくれるのである。

Office 2003でXMLに立ち向かう

 Office 2003はさまざまなXMLに関する機能が強化されている。例えばExcelで見ると、Excel 2002の場合、保存することができるXMLファイルはXMLスプレッドシートと呼ばれるExcel固有のファイル形式だけであった。あるスキーマに適合するXML文書として保存したいと思っても、容易には実現することができなかった。しかし、Excel 2003では、既存のスキーマに適合するXML文書を作成することが簡単にできるようになっている。しかも、XMLやスキーマに関する知識はほとんど必要ない。

 ここではExcel 2003を例に、簡単にスキーマからXMLファイルを作成する例を見てみよう。

 例えば、商品A、商品B、商品Cの在庫数を報告するレポートをXMLファイルで提出せよと命じられて、スキーマのファイルを渡されたとしよう。スキーマのファイルは、リスト1のような素人が見てもさっぱり分からないものである。

<?xml version="1.0" encoding="utf-8" ?>
<xs:schema targetNamespace="http://www.piedey.co.jp/ns/sample" elementFormDefault="qualified"
  xmlns="http://www.piedey.co.jp/ns/sample" xmlns:mstns="http://www.piedey.co.jp/ns/sample"
  xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="在庫レポート">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="商品A" type="xs:nonNegativeInteger" />
        <xs:element name="商品B" type="xs:nonNegativeInteger" />
        <xs:element name="商品C" type="xs:nonNegativeInteger" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>

リスト1■XMLのスキーマファイルの例

 しかし、そのファイルに書き込むべき在庫数を集計するExcelのシートはすでにあるとしよう。その状態で命じられたファイルを作成する手順は簡単である。

Office_ill001.gif

画面1■必要なデータを持つシートがあるとする。


 目的のデータを含むシートを開いてから、[データ]−[XML]−[XMLソース]を選択し、「XMLソース」作業ウィンドウを表示させる。そして、[XMLの対応付け]ボタンを押して、出てくるダイアログボックスの[追加]ボタンを押して、渡されたスキーマファイルを追加する。

Office_ill002.gif

画面2■スキーマを追加するダイアログ。[追加]ボタンをクリックする。


 これが終わったら、「XMLソース」作業ウィンドウに、スキーマにある情報に項目(XMLでは要素や属性と呼ばれる)がツリー表示される。そこで、必要な項目をドラッグして、対応するセルの上にドロップする。ここでは商品AはE3、商品BはE4、商品CはE5にドロップすればよい。

Office_ill003.gif

画面3■ドラッグ&ドロップでXMLソースとセルを関連付ける。


 これで作業は完了である。そのまま[ファイル−名前を付けて保存]を選び、ファイルの形式として(XMLスプレッドシートではなく)「XMLデータ」を選んで保存すれば、スキーマに適合するXMLファイルが得られるというわけである。特に難しいXMLやスキーマの勉強などは必要ないが、必要な作業は完了している。

前のページ | 1 2 3 4 | 次のページ

[川俣 晶,ITmedia]