Open XML is based on a document format originally developed by Microsoft Corporation.  OpenDocument file format is based on a file format originally developed by the StarDivision of Sun Microsystems.  This page provides a short summary of some of the key differences between the two formats.

The two formats reflect the capabilities of their respective application suites with Open XML developed to serialize documents created by Microsoft Office, and ODF developed to serialize documents created by StarOffice, which later became Open Office.

From a developer perspective, one of the most noticeable distinctions is a difference in philosophy in the markup.  Open XML features an element-centric approach, and tends toward deeper element hierarchy.  OpenDocument format features an XML mixed content approach, and uses an attribute centric approach to markup.  To illustrate these differences, consider markup for a paragraph that contains a bolded word.

Open XML

The following markup reflects that Open XML divides paragraphs (w:p) into runs (w:r), which then contain text (w:t) elements.  The bolded run contains run properties (w:rPr), which then contains the bold element (w:b) to indicate that the text in the run is bold.

    <w:t xml:space="preserve">This is a </w:t>
      <w:b />
    <w:t xml:space="preserve"> word.</w:t>


The following markup reflects that ODF represents paragraphs (text:p) using XML mixed content (interspersed text nodes and elements).  The bolded text is contained in a span element (text:span), which contains a style name that refers to a style in which text is bolded.  Additionally, it reflects a shallower element hierarchy, with the style represented by an XML attribute (text:style-name).

<text:p text:style-name="P1">
  This is a<text:s/><text:span text:style-name="T2">bold</text:span><text:s/>word.

See Also

Office Online: Differences between the OpenDocument Text (.odt) format and the Word (.docx) format.

Wikipedia: Comparison of Office Open XML and OpenDocument