埋め込みには、バイナリファイルなどをオブジェクトとして埋め込むものと、Office文書(パッケージ)の埋め込みがあります。外部参照も指定できますが、パッケージに含める場合、いずれも物理的なファイルはembeddingsフォルダ内に格納します。
埋め込まれたファイルの扱いはアプリケーションに任されます。埋め込まれたそれぞれのオブジェクトまたはパッケージは、メイン文書上では関連イメージ画像が代わりに表示できる必要があります。
線画、SmartArtなど
OOXMLでは、WordprocessingML文書での線画やクリップアート、スマートアートなどは、DrawingMLおよびVMLという2種類の描画のためのXML仕様を使って、直接document.xmlに記述されます。
この場合、画像データとしてのpict要素の子要素としてVMLのrect要素を使って四角形が定義されています。pict要素はVMLオブジェクトを定義するための親要素です。
このスマートアートは、DrawingMLを使って画像が定義されています。WordprocessingMLで定義されているdrawing要素はDrawingMLオブジェクトを定義するための親要素です。
Excel表の埋め込み
Wordでは文書にExcelファイル(SpreadsheetML文書)を埋め込んでExcelと同じ作業を行うことができます。この場合、Excelのデータは埋め込みデータとしてExcelファイルそのものがWordprocessingML文書パッケージ内に保存されます。
このように、Word文書にExcelワークシートを挿入して、Excelと同じ操作を行うことが可能です。
埋め込まれたExcelオブジェクトのために、wordフォルダ下にembeddingsフォルダが作成されています。word/embeddingsフォルダの内容は、次のようになっています。
この文書のメイン文書パーツではVMLでの表の描画とExcelオブジェクトの定義がされています。
埋め込まれたオブジェクトはobject要素によって表されます。さらに、object要素内でVML(vの名前空間指定子)の要素によって表がシェイプとして描画されています。shapetype要素はシェイプの種別や塗りつぶしなどを定義します。shape要素でシェイプのサイズなどのスタイルを定義しています。
この例では省略しましたが、v:formula要素の中でExcelで使われる関数(数式)が定義されています。
Excelオブジェクトへの参照は、object要素内に参照idが定義されています。
このとき、メイン文書パーツの関連付けファイルには次のようにExcelファイルのURIが追記されています。