Interoperability and Implementation Notes
Summary: This article discusses the use of implementation notes for enhancing interoperability. It also provides an overview of the implementation notes for the ISO/IEC 29500 standard that defines the Office Open XML format supported by the 2007 Microsoft Office system and Microsoft Office 2010.
Last modified: June 05, 2011
Applies to: Excel 2010 | Office 2007 | Office 2010 | Office client | Open XML | PowerPoint 2010 | SharePoint Server 2010 | VBA | Word 2010
Published: March 2011
Provided by: Microsoft Corporation
As part of its interoperability efforts, Microsoft implements the ISO/IEC 29500 standard, which specifies the Open Office XML (Open XML) file formats for documents produced by word processing, spreadsheet, and presentation programs. If a program saves a file to the format specified in the ISO/IEC 29500 standard, it should be readable by another program that follows the same standard.Note: The Open XML standard is also defined in the ECMA-376 Edition 2 standard.
During the software creation process, the development team must make many decisions about how to implement the features in a standard. This is especially true when they implement large standards like ISO/IEC 29500. An example of such decisions is the tab size in word processing documents. The Open XML standard allows for much larger tab sizes than are possible on a printed page. The development team for Microsoft Office Word 2007 and Microsoft Word 2010 made the decision to restrict the tab size to values that are actually possible to use. These tab size values are within the range of values allowed by the standard. However, they do not implement the full range of allowed values. If someone wants to write a program that writes files that to be used by Office Word 2007 or Word 2010, they should know about this tab size restriction.
When Microsoft implemented the ISO/IEC 29500 standard in software, it published implementer notes on Microsoft MSDN that describe the decisions the development team made. Knowing these decisions increases the ability of other organizations to create software that interoperates with the 2007 Office release and Office 2010.
The implementation notes for the ISO/IEC 29500 are organized in the same order as the ISO/IEC 29500 specification. The title for each note contains the location in the ISO/IEC 29500 specification that the note pertains to. Each note explains what the ISO/IEC 29500 standard states for that particular issue. It then describes how Microsoft Office implements the standard.
An instructive example is implementation note 2.1.46. This note deals with an item in Open XML files called kinsoku. This attribute, an abbreviation for the Japanese term Kinsoku Shori, controls word wrapping and line breaks in East Asian text. The note begins with the following description:
The standard states that the East Asian typography and line-breaking rules only apply to Simplified Chinese, Traditional Chinese, and Japanese text in the paragraph.
Next, the note describes what Office Word 2007 and Word 2010 do with regard to the kinsoku attribute.
Word only applies these rules to Simplified Chinese, Traditional Chinese, Korean, and Japanese text in the paragraph.
As you can see, Microsoft Office supports a broader range of East Asian languages than the ISO/IEC 29500. However, this is not an interoperability issue if other implementers know it in advance.
Another example is implementation note 2.1.67, which describes the implementation of the bold attribute. Here is what it says about the ISO/IEC 29500 standard:
The standard states that this element applies bold to non-complex script characters, but does not specify how that determination is made.
And here is its description of the implementation:
Word determines this state based on the state of the cs and rtl properties and applies bold to runs that do not use either of those properties.
In this case, the standard is not as specific about how to determine when script characters are "non-complex" and when they are complex. As a result, implementers must make that decision for themselves. The implementation notes describe that decision in a way that is clear for other implementers.
The Glossary, as expected, explains the definitions and use of certain terms in the standard and the implementation notes. Certain of these terms are used in very specific and carefully-defined ways. This usage helps reduce the possibility of misinterpreting the standard. For instance, the Glossary states that the terms MAY, SHOULD, MUST, SHOULD NOT, MUST NOT are all defined and used in accordance with the RFC2119 industry standard.
The Normative References is a list of reference materials that are required. That is, you must understand the information that is presented in these materials to read and understand ISO/IEC 29500 standard and the implementation notes.
Section 2.1 Normative Variations contains the main list of implementation notes. As stated previously, the title of each note contains the section of the ISO/IEC 29500 standard that the note applies to. Also, Appendix A: Additional Information presents additional implementation information that interoperability developers might need to know.
Microsoft creates and publishes implementation notes for the ISO/IEC 29500 standard to assist its interoperability efforts. Implementer notes describe decisions made by the software design and development teams when they implement the standard in Microsoft products. Implementer notes describe what the standard states and how the software implements that aspect of the standard. These notes help organizations create software that reads, edits, and writes files compatible with the 2007 Office release and Office 2010.