第2章 パッケージ

文書パーツ

Document Part(文書パーツ)はアプリケーションごとに異なる仕様になっています。ここでは、WordprocessingML、spreadsheetML、PresentationMLそれぞれの文書パーツを中心としてパッケージ構造を説明します。

WordprocessingMLのパッケージ構造

WordprocessingML文書のパッケージを解凍すると次のような構造になっています。

WordprocessingMLのパッケージ構造
WordprocessingMLのパッケージ構造

WordprocessingML文書として成立する最小限のファイル構成は次の通りです。

[Content_Types].xml
_rels/.rels
パッケージリレーションシップ
word/document.xml
WordprocessingMLのメインパーツであるメイン文書パーツ

wordフォルダ以下に文書パーツが格納されます。

WordprocessingML文書の代表的なパーツとして次のものがあります。

fontTable.xml
フォントテーブルパーツ
numbering.xml
番号定義テーブルパーツ
styles.xml
スタイル定義パーツ
theme(フォルダ)
テーマ情報

そのほか、上記の他に主としてそのWordprocessingML文書内の設定情報を持つsettings.xmlや、WordprocessingML文書をWebページとして保存した場合のためのスタイル情報を持つwebSettings.xmlがあります。

また、作成されたWord文書の内容によって出現するパーツがあります。代表的なパーツに次のものがあります。

embeddings(フォルダ)
埋め込みファイルフォルダ
footer1.xml,footer2.xml,footer3.xml,...
フッターパーツ
header1.xml,header2.xml,header3.xml,...
ヘッダーパーツ
footnotes.xml
脚注パーツ
endnotes.xml
文末脚注パーツ
media(フォルダ)
画像ファイルフォルダ
comment.xml
コメントパーツ

SpreadsheetMLのパッケージ構造

SpreadsheetML文書のパッケージを解凍すると以下の構造となっています。

SpreadsheetML文書のパッケージ
SpreadsheetML文書のパッケージ

WordprocessingMLの場合はメイン文書のdocument.xmlがデータの中心で、同じフォルダ(階層)にその他のパーツが存在します。SpreadsheetML文書はWordprocessingML文書と異なり、メインパーツであるワークブックパーツ(xl/workbook.xml)には実際のデータを格納するxmlファイルを参照する形になっています。このデータはシート単位でファイルに分割され、xl/worksheetsフォルダに格納されています。

xlフォルダへ文書パーツを格納します。

SpreadsheetML文書として成立する最小限のファイル構成は次の通りです。

[Content_Types].xml
_rels/.rels
パッケージリレーションシップ
xl/workbook.xml
SpreadsheetMLのメインパーツであるワークブックパーツ
xl/worksheets/sheet1.xml
ワークシートパーツ

SpreadsheetML文書には少なくとも1つのワークシートパーツが必要です。

ワークシートパーツ
ワークシートパーツ

SpreadsheetMLの代表的なパーツは次のものです。

styles.xml
スタイルパーツ
sharedStrings.xml
共有文字列パーツ
theme(フォルダ)
theme情報格納フォルダ

worksheetsフォルダの構造は次のようになっています。

worksheetsフォルダの構造
worksheetsフォルダの構造

Excelでは、ワークシート(シート)のデータを格納したファイルは、ワークブック中のシートの数によって、sheet1.xml、sheet2.xmlのようにsheetの後に番号が付いたファイル名となっています。

ワークシート(シート)のデータを格納したファイル
ワークシート(シート)のデータを格納したファイル

そのほか、xlフォルダに格納される代表的なパーツは次の通りです。

tables(フォルダ)
テーブル定義
calcChain.xml
Calculation Chain定義
printerSettings(フォルダ)
印刷定義
comments.xml
コメント
drawings(フォルダ)
描画オブジェクト
Charts(フォルダ)
チャート描画データ

shall contain

Excel 2019でシート内にテキストデータが存在しないxlsxファイルを保存したとき、内部にはsharedStrings.xmlが存在しません。

SpreadsheetML仕様の該当箇所には「shall contain」、直訳としては「含むべき」ファイルとしてsharedStrings.xmlを挙げています。仕様上最低限のパーツ以外が実際に存在するかどうかは、OPC仕様を基にチェックしていかなければなりません。

PresentationMLのパッケージ構造

PresentationML文書のパッケージ(.pptx)を解凍すると次のようになっています。

PresentationML文書のパッケージ
PresentationML文書のパッケージ

SpreadsheetML同様、メインパーツであるppt/presentation.xmlにはスライドパーツの参照が記述され、実際のコンテンツはスライドパーツに格納されます。

PresentationML文書として成立する最小限のファイル構成は次の通りです。

[Content_Types].xml
_rels/.rels
パッケージリレーションシップ
ppt/presentation.xml
PresentationMLのメインパーツであるプレゼンテーションパーツ

最小限の構成の場合、スライドが1枚もない文書となります。

pptフォルダに文書パーツを格納します。pptフォルダの構造は次の通りです。

pptフォルダの構造
pptフォルダの構造

PresentationMLの代表的なパーツは次のものです。

presProps.xml
プレゼンテーションプロパティパーツ
tableStyles.xml
テーブルスタイルパーツ
viewProps.xml
表示プロパティパーツ
slides(フォルダ)
スライドデータを格納するフォルダ
slideMasters(フォルダ)
スライドマスターを格納するフォルダ
slideLayouts(フォルダ)
スライドレイアウトを格納するフォルダ
theme(フォルダ)
テーマ情報
notesMasters(フォルダ)
ノートマスター情報
notesSlides(フォルダ)
ノートデータ
handoutMasters(フォルダ)
ハンドアウト(配布物)情報
comments(フォルダ)
コメントデータ
media(フォルダ)
埋め込みデータ

PresentationMLでは、スライドの集合がプレゼンテーションとして扱われています。

スライドの集合

PowerPointではファイル名はスライドの数に応じてslideの後に番号を追加したファイル名となります。

PresentationML文書の場合、slidesフォルダのスライドデータの他に、slideMasters、slideLayoutsの2つのフォルダがあります。名前の通り、スライドマスターとスライドレイアウトに関する情報が格納されているフォルダです。