Office Open XML (OOXML) とは?概要、メリットと活用アプリケーション

Office Open XML とはMicrosoft Office 2007以降のファイル形式の名前である。Officeの文書形式はOffice 2003までは独自のバイナリー形式であった。Office 2007以降で新たにファイル形式をXMLに準拠して規定した。XML形式として規定されたことで、Office文書をサードパーティのアプリケーションで作成したり、読み込んで利用するのが容易になった。

Microsoft Wordでは独自のバイナリー形式に加えて、RTFというテキストを拡張した交換形式が規定されていた。RTFを使って、Word文書を多くのアプリケーションで読み書きできた。Word 2003では初めて、WordProcessing MLというXML形式が規定された。

Office 2007では、Word、Excel、PowerPointの三つのアプリケーションの文書形式がOffice Open XML というXML形式で規定された。Officeで作成した文書は複数のXMLや画像ファイルから構成され、これらをZIPで圧縮して1つにまとめている。ZIP圧縮したものをパッケージと呼んでいる。

Word docxのZIPを解凍した例
Word docxのZIPを解凍した例

OOXML形式のメリット

Microsoft Officeの文書形式がバイナリーの時代には、Officeの文書を他のアプリケーションで読むにはMicrosoft から仕様書を入手すると共にOffice文書を解析しなければならなかった。

XML化されてからは比較的簡単にOffice文書の内容を読んで再利用することができるようになった。また、他のアプリケーションでOffice文書と互換のファイルを簡単に出力できるようになった。

OOXMLを利用可能なアプリケーション

OOXML形式は国際標準であり、Microsoft Office以外のアプリケーションでもOOXML文書を活用できる。主なアプリケーションを次に挙げる。

  • アンテナハウスのOffice Server Document Converter(旧Server Based Converter)は、Microsoft Office互換の整形エンジンである。OOXML文書をMicrosoft Officeを使わずにPDFや画像に変換できる。LinuxなどのサーバーでOOXMLをPDFや画像にするのに使われる([1])。
  • Libre OfficeはOOXML形式で保存したり、読み込みできる。互換性は高くないといわれている。Open OfficeはOOXML形式を読む機能がある。OOXML形式で保存する機能はない([2]) 。
  • ApacheのPOIプロジェクトはOOXMLファイルをサーバーサイドで操作することを目的に掲げている([3])。
  • PHPWordはPHPからOOXMLのWord形式を読み書きする([4]) 。
  • oXygen XML AuthorではOOXML文書をそのまま編集できる。次の図はoXygen XML Authorでdocxファイルを開いて、文書本体(document.xml)を編集画面に開いたところである。
Word docxを編集する画面
Word docxを編集する画面

その他は「Office Open XML と ECMA-376 仕様」([5])を参照。

Office Open XML(OOXML)仕様とMicrosoft Officeのバージョンの関係

Microsoft Office 2007のOOXML形式は2006年12月にECMA-376第1版として出版された。その後2008年12月にECMA-376第2版が出版され、第2版を元にISO/IEC 29500:2008仕様となった。

ECMA-376とISO/IEC 29500はOfficeのバージョンアップと並行して改訂されている。最新のOffice 2016の文書形式はECMA-376第5版、>ISO/IEC 29500:2016である。ECMA-376は無償で公開されており、ISO/IEC 29500ドキュメントは有償である。

ECMA-376とISO 29500の対応
バージョン番号 リリース ECMA ISO/IEC
Office 2007
2007年1月30日
ECMA-376 Edition 1

Office 2008 (mac版)
2007年1月30日
ECMA-376 Edition 2
ISO/IEC 29500:2008([6]
Office 2010
2010年6月17日
ECMA-376 Edition 3
ISO/IEC 29500:2011
Office 2013
2013年2月7日
ECMA-376 Edition 4
ISO/IEC 29500:2012
Office 2016
2015年9月23日
ECMA-376 Edition 5
ISO/IEC 29500-1:2016, ISO/IEC 29500-3:2015, ISO/IEC 29500-4:2016

ISO/IEC 29500仕様書Part1からPart4に分かれている。ISOのカタログに記載されているISO/IEC 29500の仕様書一覧([7])を見るとパートによって最新の改訂年度が異なっている。パート2(ISO/IEC 29500-2)は2012年版が最新である。

  • ISO/IEC 29500-1:2016
    Information technology — Document description and processing languages — Office Open XML File Formats — Part 1: Fundamentals and Markup Language Reference
    (2008年版、2012年版は撤退)
  • ISO/IEC 29500-2:2012
    Information technology — Document description and processing languages — Office Open XML File Formats — Part 2: Open Packaging Conventions
    (2008年版は撤退)
  • ISO/IEC 29500-3:2015
    Information technology — Document description and processing languages — Office Open XML File Formats — Part 3: Markup Compatibility and Extensibility
    (2012年版は撤退)
  • ISO/IEC 29500-4:2008/Cor 1:2010
  • ISO/IEC 29500-4:2016
    Information technology — Document description and processing languages — Office Open XML File Formats — Part 4: Transitional Migration Features

Microsoft OfficeとOOXMLの互換性

Word 2013以降では、「名前をつけて保存」のメニューから「Word文書(docx)」と「完全Open XMLドキュメント(docx)」という二つのdocx形式を選択できる。これはISO/IEC 29500への準拠方法の相違である。

ISO/IEC 29500-4(パート4)はOOXML移行版(Transitional)はECMA-376のEdition 1とほぼ同じであり、VML形式など古いOfficeの文書ファイル形式を利用できるようにしている。

ISO/IEC 29500完全準拠とはパート1~3に準拠する厳密(Strict)型であり、パート4も利用するのが移行(Transitional)型である。Office 2007はECMA-376の第1版を読み書きする。Office 2010は厳密型を読むことができるが書くことができない([8])。

厳密型を読み書きできるようになったのはOffice 2013からである。そういう意味ではOffice 2013で初めてISO/IEC 29500に完全準拠したことになる。

参考資料