Working Draft 1.4 of the Ecma Office Open XML formats available

Last week we held the 5th face-to-face meeting of Ecma TC45, and this time it was hosted by Microsoft. It was nice being able to stay out here in Redmond for once <g/>. At the meeting, we all agreed to make working draft 1.4 publicly available, which is awesome news. You can now get the latest draft from here:

Some key things to note in this new draft are:

  1. Document reorganization: We got a lot of feedback from the Ecma Coordination committee and ISO/IEC JTC 1/SC 34 members that a significant reorganization could help improve readability. The earlier drafts were basically one large (4000 + pages) document, and we've now broken the spec out into multiple pieces:
    • Part 1 - "Fundamentals" : This is first part of the spec is now just 130 pages and will allow people to get a good understanding of the formats without reading through the descriptions for every element.
    • Part 2 - "Open Packaging Conventions" : There is now much more information on how the files are stored in the ZIP packages, and how relationships, content types, and parts work.
    • Part 3 - "Primer" : This section gives a lot of informative information on how each of the schemas can be used
    • Part 4 - "Markup Language Reference" : This is the largest of the 5 parts, and contains the detailed descriptions for each element/attribute/and type in the schema
    • Part 5 - "Markup Compatibility" : This part describes how future markup can be added to the format while still allowing for compatibility with the 1.0 version of the spec
  2. Spreadsheet Formulas: The spreadsheetML formula definition is almost completely filled in at this point, and it was moved from the front matter into the Reference section (Part 4). In addition to that:
    • The rest of the missing function definitions have been completed
    • The vast majority of undefined behaviors are now well-defined
    • Some editorial improvements were made to make the argument list easier to read
  3. Primer section:  A lot more tutorial material was added:
    • WordprocessingML: Annotations, Custom Markup, Fields and Hyperlinks, Fonts, Glossary Document, Mail Merge, Document Settings, Styles, Tables.
    • SpreadsheetML: Calculation Chain, Comments, Custom XML Mappings, External Connections, External Links, Metadata, PivotTable, Query Tables, Shared String Table, Shared Workbooks, Tables.
    • PresentationML: Animations, Slide Synchronization
    • DrawingML: 3D, Diagrams, Coordinate Systems and Transformations, Picture, Shape Definitions and Attributes, Styles, Text.
    • General: Equations, Extensibility, Metadata
  4. Conformance: The conformance clause was significantly simplified, and should make it much more flexible for folks who only want to implement a certain portion of the spec
  5. Reference Material: The reference material has filled in a lot. The WordprocessingML section is now complete and the other MLs are getting close.
  6. Schema Changes: There have been a number of schema changes made as well based on issues raised over the past 8 months or so. An example of one of the changes made was that we took further steps to remove any dependencies for specific platforms. For example, there used to be a number of tags for "Active X" controls, and those have now been changed so that they allow for any type of control (Java, ActiveX, etc.). These points were raised by a number of people in the technical committee, as well as people outside of Ecma.

You'll also see that all 5 parts are available as .docx files again. With the 1.3 draft the .docx files followed the 1.3 version of the format, and was also supported by Beta 2 of Office 2007. These new documents follow the 1.4 version of the spec, and are not supported by Beta 2. There have been a number of changes made to the spec over the past 4-5 months, and that's why they won't open in Beta 2.

I was supposed to be taking the day off today, but I really wanted to make sure to let everyone know about the updated spec as soon as it was posted. Time to get back to my day off… :-)