皆さん、Office 2007からXMLがファイル保存の標準フォーマットになったのはご存じでしょうか?
これを、記事作成、つまり電子編集システムでつかうという具体的なストーリーをベースに検討したいと思います。
まず、Office Open XMLとはどんなものなのか?簡単にいうと以下のようになります。
ファイル構造は以下のようになっています。
カスタムXML
これを考えてみます。
独自のXMLスキーマをWord内に埋め込める機能です。
Wordで文書作成しているうちに、こうしたXMLデータ出力できたら、便利ではないでしょうか?
皆さんが普段作成している業務アプリケーションの中の入力・編集などの「詳細画面」を考えてみてください。Webのアプリでもいいですね。複数の画面でもいいですが、それらは、複数のデータをまとめてサーバー側に送るのが一般的かと思います。
以下のイメージですね。
実際はこんなイメージになります。
Word 2007にはカスタムフィールドを埋め込むことができます。
日付ならカレンダーコントロールで入力ができる様なものも指定できます。これは、.NETで作成する業務アプリケーションに比べると、勿論種類は少ないですが。
そして、Office Open XMLが、ZIP圧縮されていることを思い出してください。
Windows VistaのファイルエクスプローラーはZIP機能が統合されていますので、そのままZIP構造を展開して確認することができます。
[customXml]というフォルダができていて、その中item1.xmlというファイルがあります。
ここで、先ほどのXMLファイルと置き換えてみましょう。
ユーザーが入力し終わった、という状態と同じですね。
繰り返しになりますが、Vistaですと、ZIP圧縮フォルダかどうかは全然意識しなくとも、ファイル操作ができます。これは便利!
さて、zipになっていたファイルの拡張子をdocxに戻して内容を確認してみます。
その結果
いかがですか?
2つの効果が期待できますよね。
- 業務アプリケーションの入力部分でWord2007を活用する。出力ファイルはZIPパッケージになっているXMLの塊なので、そこからXMLファイルだけ抽出するのは、4月に入社されたSE/PGの方でも作成できるコードだと思います。
- 業務アプリケーションの処理途中で、中間データの閲覧が非常に楽になります。XMLも構造が複雑になるといかに人間でも読むのがつらいと思いますが、Word/Excelで読めます。もっというなら、Excelだったら、Excelのファイルを業務アプリの間でストレージに保存する最終処理直前まで、流通させる、という手もありですよね。
Office Open XMLは、ECMA標準を経て、現在ISO標準となりました。Microsoftの独自仕様は少なからず入るでしょうが、このcustomXML部分については、非常に独自性が高い可能性があります。
もう少しこの件でお話をしてみたいと思っています。
2008年8月1日
マイクロソフト株式会社
畠山 大有