第1章 Office Open XMLの概要

Office Open XML Formatsの概要

OOXMLはその仕様を公開し、2008年11月にISO/IEC 29500として標準化されました。そして、この標準化を語る上で外せないのは「Open Office」の存在です。オープンソースであるオフィススイートの「Open Office」は、MS Officeと並んで多くの人に支持されてきました。そして、XML化への着手は「Open Office」の方が一歩リードした形で進んでいたのです。Open OfficeのXMLフォーマットは、「Open Document Format」=ODFとしていち早くその仕様が決定され公開されました。標準化についてもODFが先手を打って、国際標準化機構のISOで既に標準規格として認可されています。

MicrosoftがOffice 2007で提唱したOOXMLは遅れをとった形にはなりましたが、まず2006年12月にヨーロッパの標準化団体であるEcma Internationalで標準規格として承認されました。そしてISO/EACのファストトラックによって承認されました。

よって、現在はEcmaとISOによる2種類の標準が存在します。仕様書はEcma、ISOともに複数のPartに分割され、Partごとに更新が行われています。Ecmaでの更新はISO仕様のフィードバックを受ける形で行われています。

OOXML仕様は部分によってはXMLスキーマの形で記述されています。よって、その仕様を理解するためには、こうしたスキーマの知識も必要となります。本書の6章では、OOXML仕様と付録に登場するW3C XML Schemaについて、最低限の規則を解説します。

Part 1
Fundamentals and Markup Language Reference
Part 2
Open Packaging Conventions
Part 3
Markup Compatibility and Extensibility
Part 4
Transitional Migration Features

OOXMLの規格にはStrictとTransitionalがあります。

TrasitionalはVMLなど古いOffice文書形式での仕様を有効にしたもので、Part 4(ISO/IEC 29500-4)にまとめられています。ECMA-376の第1版をベースとした、Microsoftが最初にISOに提案したOOXML仕様とほぼ同じ内容となっています。

StrictはISO/IEC 29500のPart 1(ISO/IEC 29500-1)からPart 3(ISO/IEC 29500-3)に完全準拠する形式です。Transitionalは先述のような経緯のものであるので、ISO標準としてはStrict形式がより望ましいものとなります。

ISO/IEC 29500-1 Fundamentals and Markup Referenceには仕様の説明のほか、ECMA-376の第1版では分かれていたリファレンスも含まれています。ほか、XMLのスキーマや、基本的な内容に絞って解説したPrimerもAnnexとして含まれています。Strict仕様のスキーマはAnnex AにXML Schemaのものが、Annex Bに仕様外としてRELAX NGのものがあります。

Office 2007は、それ以前の形式またはTransitionalで読み書きを行います。Office 2010ではStrictの読み込みが可能となり。Office 2013でStrictでの書き込みが可能になりました。よってMS OfficeがISO/IEC 295000に完全準拠したのはOffice 2013以降ともいえます。

StrictとTransitionalの違い

「ECMA 376初版からISO/IECで修正された」具体的な内容については、主にISO/IEC 29500-1 Annex Mに記載されています。細かな要素やプロパティが増減している箇所や、描画用の語彙について旧形式のVMLのように、項が丸ごと削除された箇所もあります。

パッケージ構造に関連する違いはISO/IEC 29500-2 Annex Iに記載されています。

ISO/IEC Ecma MS Office
2007 - ECMA-376 Edition 1 Office 2007。ECMA-376第1版の読み書き対応
2008 ISO/IEC 29500:2008 ECMA-376 Edition 2 Office 2008(mac版)
2010 ISO/IEC 29500:2011 ECMA-376 Edition 3 Office 2010。Strictの読み込み対応
2013 ISO/IEC 29500:2012 ECMA-376 Edition 4 Office 2013。Strictの書き込み対応
2016 ISO/IEC 29500-1:2016, ISO/IEC 29500-3:2015, ISO/IEC 29500-4:2016 ECMA-376 Edition 5 Office 2016

2021年現在、ISO/IEC 29500の仕様はそれぞれのPartで別々に改訂されています。

ECMA-376第1版

ECMA-376第1版Final DraftでのOOXML仕様書の内訳は次のようになっていました。

Part 1
Fundamentals
Part 2
Open Packaging Conventions
Part 3
Primer
Part 4
Markup Language Reference
Part 5
Markup Compatibility and Extensibility

Part 1は序章として概要や基礎的な内容となっています。Part 2はパッケージと呼ばれるOOXMLのファイル構成や、それらを関連付けするリレーションシップと呼ばれる仕様についての解説です。Part3はWordやExcel、PowerPointなどの種類ごとに分けてやや詳細な仕様について説明されています。もっともボリュームが大きいのが、Part4のMarkup Language Reference(言語リファレンス)です。OOXMLで使用されるすべての言語仕様の詳細を載せているのですが、5000ページを超えています。Part 5は互換性や拡張性についての説明です。Part 4は言語仕様となっています。