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圧縮したものをパッケージと呼んでいる。
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)を編集画面に開いたところである。
その他は「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 | 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に完全準拠したことになる。
参考資料
- [1] Office Server Document Converter(旧Server
Based
Converter) 機能紹介:XMLファイルへの対応
https://www.antenna.co.jp/sbc/function06.html - [2] Open Officeは、Sun Microsystems社がオープンソースのOfficeアプリケーションとして推進したものであるが、SunがOracleに買収されたのに伴いApacheに寄贈されて現在はApacheのプロジェクトとなっている。Libre OfficeはOpen Officeから一部の技術者が分離してできたプロジェクトである。Open Office/Libre OfficeとOOXMLの互換性については、https://forum.openoffice.org/などを参照。
- [3] https://poi.apache.org/
- [4] https://github.com/PHPOffice/PHPWord
https://phpword.readthedocs.io/en/latest/intro.html#file-formats - [5] Office Open XML と ECMA-376 仕様(Office 10)
- [6] Publication of ISO/IEC 29500:2008, Information technology – Document description and processing languages – Office Open XML file formatsによるとISO/IEC 29500:2008はOffice 2008アプリケーションに基づいている、とされている。
- [7] https://www.iso.org/ics/35.060/x/
- [8] Office 2010のOOXMLはISO標準に準拠してない!? – 仕様サポート巡って議論