An Office Open XML file may contain several documents encoded in specialized
markup languages corresponding to applications within the Microsoft Office product line. Office Open XML defines multiple vocabularies using 27
namespaces and 89
schema modules. The primary markup languages are: • WordprocessingML for word-processing • SpreadsheetML for spreadsheets • PresentationML for presentations Shared markup language materials include: • Office Math Markup Language (OMML) • DrawingML used for vector drawing, charts, and for example, text art (additionally, though deprecated,
VML is supported for drawing) • Extended properties • Custom properties • Variant Types • Custom XML data properties • Bibliography In addition to the above markup languages custom XML schemas can be used to extend Office Open XML.
Design approach Patrick Durusau, the editor of
ODF, has viewed the markup style of OOXML and ODF as representing two sides of a debate: the "element side" and the "attribute side". He notes that OOXML represents "the element side of this approach" and singles out the KeepNext element as an example: … In contrast, he notes ODF would use the single attribute fo:keep-next, rather than an element, for the same semantic. In a test with applications current in April 2007, XML-based office documents were slower to load than binary formats. To enhance performance, Office Open XML uses very short element names for common elements and spreadsheets save dates as index numbers (starting from 1900 or from 1904). In order to be systematic and generic, Office Open XML typically uses separate child elements for data and metadata (element names ending in
Pr for
properties) rather than using multiple attributes, which allows structured 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). The result is terse and highly nested in contrast to
HTML, for example, which is fairly flat, designed for humans to write in
text editors and is more congenial for humans to read. The naming of elements and attributes within the text has attracted some criticism. There are three different syntaxes in OOXML (ECMA-376) for specifying the color and alignment of text depending on whether the document is a text, spreadsheet, or presentation. Rob Weir (an
IBM employee and co-chair of the
OASIS OpenDocument Format TC) asks "What is the engineering justification for this horror?". He contrasts with
OpenDocument: "ODF uses the W3C's XSL-FO vocabulary for text styling, and uses this vocabulary consistently". Some have argued the design is based too closely on Microsoft applications. In August 2007, the
Linux Foundation published a blog post calling upon ISO National Bodies to vote "No, with comments" during the International Standardization of OOXML. It said, "OOXML is a direct port of a single vendor's binary document formats. It avoids the re-use of relevant existing international standards (e.g. several cryptographic algorithms, VML, etc.). There are literally hundreds of technical flaws that should be addressed before standardizing OOXML including continued use of binary code tied to platform specific features, propagating bugs in MS-Office into the standard, proprietary units, references to proprietary/confidential tags, unclear
IP and patent rights, and much more". The version of the standard submitted to
JTC 1 was 6546 pages long. The need and appropriateness of such length has been questioned.
Google stated that "the ODF standard, which achieves the same goal, is only 867 pages"
SpreadsheetML (SML) Spreadsheet documents use the XML vocabulary known as SpreadsheetML normatively defined by the schema sml.xsd which accompanies the standard. This vocabulary is described in clause 12 of Part 1. bug that erroneously treats 1900 as a leap year. Products complying with ECMA-376 would be required to use the WEEKDAY() spreadsheet function, and therefore assign incorrect dates to some days of the week, and also miscalculate the number of days between certain dates. ECMA-376 2nd edition (ISO/IEC 29500) allows the use of 8601:2004 "Representation of Dates and Times" in addition to the Lotus 1-2-3 bug-compatible form.
Office MathML (OMML) Office Math Markup Language is a mathematical markup language which can be embedded in WordprocessingML, with intrinsic support for including word processing markup like revision markings, footnotes, comments, images and elaborate formatting and styles. The OMML format is different from the
World Wide Web Consortium (W3C)
MathML recommendation that does not support those office features, but is partially compatible through
XSL Transformations; tools are provided with office suite and are automatically used via clipboard transformations. The following Office MathML example defines the
fraction: \frac{\pi}{2} π 2 Some have queried the need for Office MathML (OMML) instead advocating the use of
MathML, a
W3C recommendation for the "inclusion of mathematical expressions in Web pages" and "machine to machine communication". Murray Sargent has answered some of these issues in a blog post, which details some of the philosophical differences between the two formats.
DrawingML DrawingML is the
vector graphics markup language used in Office Open XML documents. Its major features are the graphics rendering of text elements, graphical vector-based shape elements, graphical tables and charts. The DrawingML table is the third table model in Office Open XML (next to the table models in WordprocessingML and SpreadsheetML) and is optimized for graphical effects and its main use is in presentations created with PresentationML markup. DrawingML contains graphics effects (like shadows and reflection) that can be used on the different graphical elements that are used in DrawingML. In DrawingML you can also create 3d effects, for instance to show the different graphical elements through a flexible camera viewpoint. It is possible to create separate DrawingML theme parts in an Office Open XML package. These themes can then be applied to graphical elements throughout the Office Open XML package. DrawingML is unrelated to the other
vector graphics formats such as
SVG. These can be converted to DrawingML to include natively in an Office Open XML document. This is a different approach to that of the
OpenDocument format, which uses a subset of SVG, and includes vector graphics as separate files. A DrawingML graphic's dimensions are specified in
English Metric Units (EMUs). It is so called because it allows an exact common representation of dimensions originally in either
English or
metric units—defined as 1/360,000 of a
centimeter, and thus there are 914,400 EMUs per
inch, and 12,700 EMUs per
point, to prevent round-off in calculations.
Rick Jelliffe favors EMUs as a rational solution to a particular set of design criteria. Some have criticised the use of DrawingML (and the transitional-use-only
VML) instead of
W3C recommendation
SVG. VML did not become a W3C recommendation. == Foreign resources ==