OOXMLとは (JEPA EbookPediaの原稿ドラフト)

JepaのEbookpediaは3月13日公開されました:

OOXML

最後に互換性について追加しています。
本ブログにいただいたコメントを元にしています。

—————–
JEPA EbookPedia今月はOOXMLの解説を書こうと思っています。

そこで、ドラフトを以下に公開します。ご不明点などのコメントをいただけるとありがたいです。

----
OOXMLとは

 OOXML(Office Open XML)はマイクロソフトOfficeの文書形式をXMLに準拠して規定したファイル形式仕様の名前である。Office 2007のファイル形式が初めて全面的にOOXMLで規定されて現在に至っている。

もっと詳しく
Officeの文書形式は2003まで独自のバイナリー形式であった。マイクロソフトWordでは独自のバイナリー形式とRTFという交換形式が規定されていた。Word 2003で初めて、WordProcessing MLというXML形式が規定された。

Office 2007では、Word、Excel、PowerPointの三つのアプリケーションの文書形式がOffice Open XML というXML形式で規定された。これをOOXMLという。

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である。

国際標準化競争
マイクロソフトがOfficeの文書形式をOOXMLという形で国際標準化を進めたのは、当時の競合であるサン・マイクロシステムズのオープンソースのオフィスアプリケーションOpen Officeが大きな影響を与えている。Open Officeの文書形式はOpenDocument Format (ODF)というXML形式で策定され、2005年にOASIS標準、次いで2006年にISO/IEC 26300:2006となった。

国際標準化により、政府・地方公共団体などでOpen Officeを採用し、マイクロソフトOfficeを閉め出す動きが見られた。こういった動きに対処するためにマイクロソフトはECMAを通じてOOXMLの国際標準化を急いだのである。

XML形式のメリット
マイクロソフトOfficeの文書形式がバイナリーの時代には、Officeの文書を他のアプリケーションで読むにはマイクロソフトから仕様書を入手すると共にOffice文書を解析しなければならなかった。XML化されてからは比較的簡単にOffice文書の内容を読んで再利用することができるようになった。また、他のアプリケーションでOffice文書と互換のファイルを簡単に出力できるようになった。

マイクロソフトWordの文書はRTFという拡張テキストとして保存して交換することが
できたが、それもすでにWordProcessing MLで置き換えられている。このようにXML技術によってOffice文書の交換方式は一新された。

—-
参考資料

[1] Office Open XML(OOXML)仕様とMicrosoft Officeのバージョンの関係
[2] WordML(Office2003)

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

Microsoft OfficeのXML形式の仕様書はOffice Open XML(OOXML)として規定されている。当初はECMA-376標準として規定され、それを元にしてISO/IEC 29500として標準化された。

Microsoft Officeのバージョンアップにより、OOXMLの仕様も少しずつ改訂されている。特に、ISO/IEC 29500仕様書には移行版(Transitional)と厳密版(Strict)が規定されている[1]。移行版はECMA-376のEdition 1とほぼ同じである。厳密版はECMA-376のEdition 2と同じである。

ECMA-376のEdition 1、ISO/IEC 29500の移行版はMicrosoft Office 2007が読み書きできる。これらの仕様書は概ねMicrosoft Officeのバージョンアップに対応して拡張されている。

Ecma
バージョン番号 リリース ISO
Office 2007 2007年1月30日 ECMA-376 Edition 1
Office 2008 (mac版) 2007年1月30日 ECMA-376 Edition 2 ISO/IEC 29500:2008[2]
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のカタログに記載されているISO/IEC 29500の仕様書一覧[3]を見るとパートによって最新の改訂年度が異なっている。パート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

[1] Office Open XML と ECMA-376 仕様(Office 10)
[2] Publication of ISO/IEC 29500:2008, Information technology – Document description and processing languages – Office Open XML file formatsによるとISO/IEC 29500:2008はOffice 2008アプリケーションに基づいている、とされている。
[3] https://www.iso.org/ics/35.060/x/
[4] Office 2010のOOXMLはISO標準に準拠してない!? – 仕様サポート巡って議論