Office2003はもうすぐサポート終了になるそうです.私のPCにはOffice2013も入っていますがOffice2003もまだちゃんと入っています.Office2003の例えばWord2003はMicrosoftにとって画期的な製品でした.何故かというとそれまでのバイナリーのネイティブフォーマットの.docに加えて、WordML(.xml)がネイティブフォーマットとして追加されたからです.それまでの.doc形式は読み書きするのがとても大変でした.たとえばうちの会社はもう十何年もコンバータを作っていますが、.docのフォーマットをずっと追い続け、読み書きできるライブラリを作っていたからです.ところがフォーマットがXMLになると事態は一変します.どこが変わるのかと言うと次のような点になると思います.
3.XMLは書くほうも楽です.前の記事でXMLをコピーするプログラムを紹介しましたが、エンコーディングを指定したWriterに"<"+タグ名+属性+">"、タグの内容、"</"+タグ名+">"を書き込むだけです.
という訳です.今まで.docを読み書きできるライブラリは当たり前のようにC/C++で作成されてきました.なので、このライブラリを使う側も自動的に(ほとんど)C/C++に言語に縛られていたわけです.しかしXMLを使えばパーサーが使えるほぼすべての言語で読み(書き)ができるようになります.ガチガチのC/C++に縛られる必要はまったくなくなるのです.
わたしももう10年前ですが、お客様の要望で、DocBookからWordMLをXSLTで生成し、実際に使ってもらっています.もしWordMLなしにDocBookからWordの.docを作るとなったら、とてつもない工数がかかったでしょう.しかし、このXSLTスタイルシートの作成工数は数人月であったと記憶しています.
また以前ですが、WordMLからXSL-FOを直接作成するスタイルシートを書いたことがあります.まだXSLT1.0の時代でしたので、その労力たるや大変でしたが、それでもお客様の役に立つ場合はあったようです.
ところでそうは言ってもXMLを読み込む側から考えてみると、単にパーサーを使用して、読み込んだ結果を自分独自のクラスのインスタンスや構造体に展開して、それから目的の結果を生成するということでしたらそれほどの価値はありません.
例えば、
<doc>
<chapter>
<title>~</title>
<p id="ID_001">FOO</p>
<p id="ID_002">BAR</p>
</chapter>
</doc>