OOXMLでないXML形式
Word XMLはWord 2003で採用された、OOXML以前にXML形式を採用した保存形式で拡張子はxmlです。OOXMLのWordprocessingMLとの共通点はあるものの、単一のXMLであることなど、様々な差異があります。
ExcelもOOXML以前にXML形式が採用されました。「XMLスプレッドシート2003」がこの形式にあたります。
MS OfficeのWord、Excel、PowerPointを使って作成されたファイルは、それぞれOOXML以前のファイル形式を表す拡張子doc、xls、pptの末尾に「x」を付け、docx、xlsx、pptxのようになっています。
次に各アプリケーションのファイルタイプと拡張子の一覧を示します。
Wordのファイル タイプ | 拡張子 |
---|---|
Word文書 | docx |
Wordマクロ有効文書 | docm |
Wordマクロ有効テンプレート | dotm |
Wordテンプレート | dotx |
完全Open XMLドキュメント | docx |
Excelのファイル タイプ | 拡張子 |
---|---|
Excel ブック | xlsx |
Excel マクロ有効ブック | xlsm |
Excel テンプレート | xltx |
Excel マクロ有効テンプレート | xltm |
Strict Open XML Spreadsheet Document | xlsx |
PowerPointのファイル タイプ | 拡張子 |
---|---|
PowerPoint XMLプレゼンテーション | pptx |
PowerPoint 画像化 XML プレゼンテーション | pptx |
完全Open XML プレゼンテーション | pptx |
PowerPoint XMLプレゼンテーション | xml |
PowerPoint マクロ有効プレゼンテーション | pptm |
PowerPointテンプレート | potx |
PowerPoint マクロ有効テンプレート | potm |
PowerPoint マクロ有効アドイン | ppam |
PowerPoint スライドショー | ppsx |
PowerPoint マクロ有効スライド ショー | ppsm |
MS Officeで使用される拡張子は、このようにマクロやテンプレートの有無で変化します。文書テンプレートとして保存したものは末尾のxの前にtが、マクロを付加したものはmが末尾に付加されています。
「完全Open XML」、あるいは「Strict Open XML」という文字列を含むものは、ISO/IEC 29500のPart 1から3、Strictの仕様に準拠するOOXMLです。
MS Officeのアプリケーションで作成したファイルは1つのファイルとして保存されますが、実際には複数のファイルをzip圧縮して1つにまとめたコンテナです。OOXMLではこのコンテナをパッケージと呼びます。したがって、このパッケージの拡張子をzipに変更して解凍するとパッケージの内部を見ることができます。
Word XMLはWord 2003で採用された、OOXML以前にXML形式を採用した保存形式で拡張子はxmlです。OOXMLのWordprocessingMLとの共通点はあるものの、単一のXMLであることなど、様々な差異があります。
ExcelもOOXML以前にXML形式が採用されました。「XMLスプレッドシート2003」がこの形式にあたります。
Office 2007では、たとえばdocxは「Word 2007 XML文書」のように、OOXML(Transitional)の新形式であることが強調されていました。また、「完全Open XML」あるいは「Strict Open XML」が保存形式に登場するのはOffice 2013以降となります。
このように、パッケージ内部は複数の階層化されたフォルダとファイルに分散しています。これらのファイルはパーツと呼ばれます。パーツに必要なファイルや構造は決まっていますが、詳細はそれぞれの文書が定義します。
パッケージの仕様の基本はISO/IEC 29500-2 Open Packaging Conventions(OPC)で定義されています。
ISO/IEC 29500-2はXMLとフォルダを中心としたパッケージの構造、共通する文書情報、サムネイル画像、OPCに基づく文書ファイルの電子署名について扱っています。本書では電子署名については扱いません。
OPCはOOXML仕様以外にも利用できるように定義されています。たとえばXML Paper Specification(XPS)仕様のパッケージもOPCに基づくものです。
つまりOOXMLのパッケージ全体の仕様は、OPCにOOXMLのための拡張を加えたもの、ということになります。