If you haven’t heard of Office Open XML don’t be surprised.  I hadn’t until a couple of months ago.  In short it is a standardization of the Office document models which allows for more flexible development methods.  You no longer need to have an instance of your target Office application running on a server in order to generate Word, Excel or PowerPoint documents.  This is also the reason that all of the Office file extensions have a “x” suffix these days.

Office Open XML files are actually zip files.  This is to allow verbose XML files and required associated documents to be kept as a single package instead of in a binary format.  Given that we are talking about XML files in a zip archive, you can really program against Office Open XML documents simply by knowing the schema definition.  But who wants to do that if someone has already given you a strongly typed API library?

This is where the Open XML SDK 2.0 comes in.  This library gives you strongly typed classes which represent the parts that make up documents.  This in turn makes reading you code easier than simply using a XMLDocument to modify the file.

When working with the XML of a document I have found it hard to find a compact reference of element types.  Of course you can always refer to the verbose ISO standards document (all 5572 pages worth).  Going forward I hope to have some helpful tips for working with the powerful but under-documented technology.  Stay tuned.