Office Open XML は Open Packaging Convention 形式、すなわちXML とその他のファイル、ファイル間の関連性についての記述を格納した ZIP ファイル のパッケージである[2]。ドキュメントのタイプにより、パッケージの内部ディレクトリの構造と名前は異なっている。アプリケーションはリレーションシップファイルにより個々のセクション(ファイル)間の場所を記述し、メタデータ、具体的にはMIMEタイプ等が付随する。
基本的なパッケージでは、[Content_Types].xml というXMLファイルをルートに配置し、3つのディレクトリ: _rels, docProps, および文書タイプ独自のディレクトリ(例えばWordの.docx ワードプロセッシングパッケージの場合は word ディレクトリ)が付随する。word ディレクトリにはdocument.xml ファイルがドキュメントのコアとして存在する。
Office Open XML の XML スキーマ は、文書の読み込み時間と解釈のスピードに重点を置いたものである[4]。2007年当時のアプリケーションを使ったテストでは、XMLベースのドキュメントはバイナリ形式のものより読み込み速度が遅かった[5]。パフォーマンスを向上させるため、Office Open XML では要素名を非常に短い物としており、スプレッドシートでは日付をインデックス番号(1899-1904)で表記している
。.[要出典]画一的かつ包括的であるために、Office Open XML は一般的にデータとメタデータについて (element names ending in Pr for properties) 属性を複数付けるより子エレメントを増やす方式によりプロパティの階層構造化を可能にしている。Office Open XML does not use mixed content but uses elements to put a series of text runs (element name r) into paragraphs (element name p). 結果として、HTMLがフラットで人間がテキストエディターで編集しやすいのに比べて、簡潔で何層にも入れ子されたものとなっている。
他に、デザインがあまりにマイクロソフトのアプリケーションに密着しすぎているという議論もある。ISOにおける国際標準化が進行中であった2007年8月、 Linux Foundation はブログでISOの各国代表組織に対して"コメント付きのノーを"と呼びかけた。記事では"OOXML はベンダーのバイナリフォーマットを直接書き出しただけの物で、既存の国際標準(例: 暗号化アルゴリズム、VML等)の再利用を避けているとしている。
OOXML標準化に先だって議論されるべき点が何百とあり、プラットフォーム特有機能と結びついたバイナリコードを存続させ、MS-Officeのバグ、知的財産、プロプライエタリーや機密に準拠したタグ、クリアになっていない知的財産を標準に取込み撒き散らす行為だと述べている[7](日経参考記事)。
<m:oMathPara><!-- mathematical block container used as a paragraph --><m:oMath><!-- mathematical inline formula --><m:f><!-- a fraction --><m:num><m:r><m:t>π</m:t></m:r></m:num><!-- numerator containing a single run of text --><m:den><m:r><m:t>2</m:t></m:r></m:den><!-- denominator containing a single run of text --></m:f></m:oMath></m:oMathPara>
DrawingML は Office Open XML documents内で使用される vector graphics markup language である。主な特色はテキスト要素やベクター図形要素、グラフィカルな表やチャートのグラフィック描画である。
DrawingML の表は Office Open XML にある3つの表の記述モデルの一つであり[21]エフェクト表現に最適化されており、主な用途はプレゼンテーション用途の PresentationML マークアップでの使用である。DrawingML は画像エフェクト(影、反射など)を備えており、これはDrawingML内の各種画像エレメントに適用することができる。DrawingML では3D(立体)エフェクトも可能で、 for instance to show the different graphical elements through a flexible camera viewpoint.Office Open XML パッケージ内で複数のテーマパーツを定義することもできる。テーマはOffice Open XML パッケージ全体に適用される[22]。
DrawingML はほかの ベクター図形 画像フォーマットであるSVG 等とは関連がない。これらは変換すれば DrawingML Office Open XML document内に直接埋め込むことができる。SVGのサブセットである OpenDocument フォーマットはベクター画像を個々にファイルに保存しており、方法が異なる。
DrawingML 画像の寸法は English Metric Units (EMUs) という単位で表現される。これは英国法とメートル法で一致する数値表現が必要であったためで、1centimeter の1/360,000 にあたり、1inchの1/914,400 であり, 1pointの1/12,700 である。この単位を採用したためにドキュメント内のほとんどの寸法を整数で正確に表現することができる。浮動小数点で表記すれば要素が増えるにつれて誤差が積み上がることが避けられない。Floating point cannot accurately represent a fraction that is not a sum of powers of two and the error is magnified when the fractions are added together many times, resulting in misalignment. As an inch is exactly 2.54 centimeters, or 127/50, 1/127 inch is an integer multiple of a power-of-ten fraction of the meter (2×10−4 m). To accurately represent (with an integer) 1 μm = 10−6 m, a divisor of 100 is further needed. To accurately represent the point unit, a divisor of 72 is needed, which also allows divisions by 2, 3, 4, 6, 8, 9, 12, 18, 24, and 36 to be accurate. Multiplying these together gives 127×72×100 = 914,400 units per inch; this also allows exact representations of multiples of 1/100 & 1/32 inch. プログラマーでありISO, W3C, IETFにおいて標準化活動を行う Rick Jelliffe によれば、EMUs はこのデザイン分野上の問題に対する合理的な解決策であるとされる[23]。
DrawingML (and the transitional-use-only VML) が W3C の推奨であるSVGを採用していないことに対する非難も存在する[24]。VMLはW3Cの推奨にならなかったためである[25]。
Free Software Magazine は記事でこれらの設定用マークアップについて批判した。Office Open XML uses は互換設定を直接要素名に使っており、その設定にはレパートリーがないーすなわち互換性設定が増える度に要素名が新規定義されねばならず、これでは相互運用性に全く寄与しないという[28]。
拡張性
この標準は2種類の拡張の仕組みを持ち、 Part 3 (ISO/IEC 29500-3:2008)の「Markup Compatibility and Extensibility (MCE) 」とPart 1の18.2.10 のExtension Lists に定義されている。