In the review of the Open XML specification, several national standards bodies submitted comments regarding the embedding of linked objects. The complaint was that Open XML markup was tied too specifically to Microsoft’s technologies, i.e. OLE.
Ecma’s response was something along the lines of this:
OLE is referenced within the DIS 29500 specification, but as a generalized approach for embedding objects from any external component technology. OLE in this context does not refer to Microsoft’s OLE technology. Instead, it refers to the generalized abstraction of embedding and linking objects within a document or spreadsheet. The oleLink element is analogous to §9.3.3 of the ODF standard where the draw:object-ole element is defined.
This isn’t verbatim, but is the gist of the response.
This particular response was singled out for criticism by some of the opponents of Open XML. Some people didn’t believe that other object embedding technologies, such as KParts, could be implemented using the existing Open XML markup.
My friend, Bob McClellan, and I decided to put together a proof-of-concept that shows that the markup in DIS 29500 is capable of configuring other object linking and embedding technologies than OLE. Bob wrote a small program in C++, to be run on Linux, which shows the use of the markup to embed a KPart. This program is a “simulated spreadsheet” application. The parts to render the spreadsheet from the markup is pretty simplistic. It is there just to provide a framework and context so that the embedded KPart can be put on the window in a fashion that would be similar to how you would do it in a real application. The following screen shot shows the simulated spreadsheet with an embedded HTML viewer KPart:
In the above screenshot, you can see the data in the simulated cells. The cells contain: 111, 222, 333, etc. You can also see the embedded HTML viewer.
The following blog page presents the complete story of embedding a KPart object using DIS 29500 markup. It also contains complete source code. Those who are interested are free to compile and link this KDE application, and see the instantiation of the embedded KPart.
Here is the blog page: Spreadsheet KPart Simulation