Embeddings

Office Open XML provides facilities allowing the embedding of any object within a document. For example, a WordprocessingML document might include data as an embedded SpreadsheetML document rather than a native WordprocessingML table, in order to allow that data to be edited and recalculated by a SpreadsheetML calculation engine, rather than having it stored as a static table of data.

Office Open XML provides for two classes of embedded objects:

  • Embedded Packages - An embedded Office Open XML document embedded within another Office Open XML document, with both documents stored in the format defined by this Office Open XML specification. For example, a PresentationML document embedded within a SpreadsheetML document results in an embedded package.

  • Embedded Objects - Any other embedded object data. The data stored in the object shall be identified by a unique string, referred to as its ProgID. This string shall be used to determine both the type of data and the application (if any) that shall be used to load and edit the embedded object data.

Office Open XML also allows an image to be optionally associated with the embedded object data, for use when the embedded object application and data itself is not used by the consuming application (e.g. when the object cannot be loaded – the object is from an unknown source; the object is known, but the application has chosen not to load it for performance reasons, and so on).