Difference between revisions of "Office Open XML"
m (Added Status and Todo paragraphs) |
PeterKelly (Talk | contribs) m (Minor wording clarification) |
||
(6 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
− | Office Open XML (OOXML) is an XML based file format | + | Office Open XML (OOXML) is an XML-based file format used for representing word processing documents, spreadsheets, and presentations. It is conceptually similar to ODF in many respects, though a lot of the details differ. OOXML was created by Microsoft and has been used as the default format in all versions of Office since 2007. It has been published as a standard as both ISO 29500 and ECMA-376. |
+ | The official specifications for OOXML, which come in four parts, are available here (search for "29500"): | ||
+ | |||
+ | http://standards.iso.org/ittf/PubliclyAvailableStandards/index.html | ||
+ | |||
+ | There are two versions of OOXML - "Strict" and "Transitional". The former is a subset of the latter, and excludes certain legacy features that the latter retains to facilitate conversion from the older binary formats. Currently, OOXML Transitional is the only variant in widespread use; OOXML Strict is only fully supported in Office 2013 for Windows, though Office 2010 contains the ability to read (but not write) Strict documents. | ||
+ | |||
+ | OOXML documents of both variants use the .docx, .xlsx, and .pptx extensions for word processing documents, spreadsheets, and presentations, respectively. Thus it is easy to tell the difference between an OOXML file and the older MS Office binary format, which uses .doc, .xls, and .ppt. | ||
+ | |||
+ | The following pages describe various aspects of the standard: | ||
+ | |||
+ | * [[OOXML/Open_Packaging_Conventions_(OPC)|Open Packaging Conventions (OPC)]] | ||
+ | * [[OOXML/Markup_Compatibility_and_Extensibility|Markup Compatibility and Extensibility]] | ||
+ | * [[OOXML/WordProcessingML|WordProcessingML]] | ||
+ | * [[OOXML/SpreadsheetML|SpreadsheetML]] | ||
+ | * [[OOXML/PresentationML|PresentationML]] | ||
+ | * [[OOXML/DrawingML|DrawingML]] | ||
+ | * [[OOXML/Vector_Markup_Language_(VML)|Vector Markup Language (VML)]] | ||
+ | |||
+ | ==Status== | ||
A new import filter is currently (as of May 2014) in development. Its design and implementation is described on this page. The legacy importer and exporter is described [[Office_Open_XML/Legacy_Implementation|here]]. | A new import filter is currently (as of May 2014) in development. Its design and implementation is described on this page. The legacy importer and exporter is described [[Office_Open_XML/Legacy_Implementation|here]]. | ||
− | |||
The new OOXML import framework is currently in the design stage. Development is about to begin. | The new OOXML import framework is currently in the design stage. Development is about to begin. | ||
− | Todo: | + | Progress/Todo: |
− | {| | + | {|class="wikitable" |
− | Create new main/ooxml/ module and setup initial build files | + | !style="text-align:left;"|What |
+ | !Who | ||
+ | !Status | ||
+ | |- | ||
+ | |Create new main/ooxml/ module and setup initial build files | ||
+ | |Andre | ||
+ | |In progress | ||
+ | |- | ||
+ | |colspan="3"|Specifications | ||
+ | |- | ||
| | | | ||
− | + | *Collect a list of the relevant schema files. | |
| | | | ||
− | |||
| | | | ||
− | |-Setup map of different specification variants and applications. | + | |- |
+ | | | ||
+ | *Determine legal status of OOXML schemas. | ||
+ | | | ||
+ | | | ||
+ | |- | ||
+ | | | ||
+ | *Setup map of different specification variants and applications. | ||
+ | | | ||
+ | | | ||
+ | |- | ||
+ | | | ||
+ | *Write the schema parser | ||
+ | |Andre | ||
+ | | | ||
+ | |- | ||
+ | |colspan="3"|DSL parser | ||
+ | |- | ||
+ | | | ||
+ | *Finialize DSL design | ||
+ | | | ||
+ | | | ||
+ | |- | ||
+ | | | ||
+ | *Implement DSL parser | ||
+ | | | ||
+ | | | ||
+ | |- | ||
+ | |Implement OOXML parser generator | ||
+ | | | ||
+ | | | ||
+ | |- | ||
+ | |Migrate existing PresentationML import | ||
| | | | ||
− | |||
| | | | ||
|} | |} | ||
Line 41: | Line 98: | ||
− | == | + | ==Framework== |
− | + | A new framework for the import of OOXML documents is designed to make the import code based on this framework easy to read and easy to develop. In a compile time pre-processing step the OOXML schema files are read and turned into the OOXML parser skeleton. A domain specific language (DSL) can then be used to provide the implementation for specific elements (complex types) of the OOXML format. | |
− | + | ||
− | + | Details can be found on the [[OOXML Framework]] page. | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | [[Category:Office Open XML]] | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + |
Latest revision as of 07:28, 24 July 2014
Office Open XML (OOXML) is an XML-based file format used for representing word processing documents, spreadsheets, and presentations. It is conceptually similar to ODF in many respects, though a lot of the details differ. OOXML was created by Microsoft and has been used as the default format in all versions of Office since 2007. It has been published as a standard as both ISO 29500 and ECMA-376.
The official specifications for OOXML, which come in four parts, are available here (search for "29500"):
http://standards.iso.org/ittf/PubliclyAvailableStandards/index.html
There are two versions of OOXML - "Strict" and "Transitional". The former is a subset of the latter, and excludes certain legacy features that the latter retains to facilitate conversion from the older binary formats. Currently, OOXML Transitional is the only variant in widespread use; OOXML Strict is only fully supported in Office 2013 for Windows, though Office 2010 contains the ability to read (but not write) Strict documents.
OOXML documents of both variants use the .docx, .xlsx, and .pptx extensions for word processing documents, spreadsheets, and presentations, respectively. Thus it is easy to tell the difference between an OOXML file and the older MS Office binary format, which uses .doc, .xls, and .ppt.
The following pages describe various aspects of the standard:
- Open Packaging Conventions (OPC)
- Markup Compatibility and Extensibility
- WordProcessingML
- SpreadsheetML
- PresentationML
- DrawingML
- Vector Markup Language (VML)
Status
A new import filter is currently (as of May 2014) in development. Its design and implementation is described on this page. The legacy importer and exporter is described here.
The new OOXML import framework is currently in the design stage. Development is about to begin.
Progress/Todo:
What | Who | Status |
---|---|---|
Create new main/ooxml/ module and setup initial build files | Andre | In progress |
Specifications | ||
|
||
|
||
|
||
|
Andre | |
DSL parser | ||
|
||
|
||
Implement OOXML parser generator | ||
Migrate existing PresentationML import |
File Format
The file format is described by several documents:
- Specifications:
- ISO 29500:2012 (http://www.iso.org/iso/home/store/catalogue_tc/catalogue_detail.htm?csnumber=61750)
- ISO 29500:2008
- ECMA-376 (http://www.ecma-international.org/publications/standards/Ecma-376.htm)
- (ECMA) TC-45 (http://www.ecma-international.org/news/TC45_current_work/TC45_available_docs.htm)
- Microsoft Extensions (Overview):
There are three main markup languages (MLs) for the three main applications:
- WordprocessingML
- SpreadsheetML
- PresentationML
Markup languages that are shared by all applications are
- DrawingML
- VML (for legacy files)
OOXML files are, similar to ODF files, ZIP containers with one entry per XML stream. OOXML calls these entries parts.
Framework
A new framework for the import of OOXML documents is designed to make the import code based on this framework easy to read and easy to develop. In a compile time pre-processing step the OOXML schema files are read and turned into the OOXML parser skeleton. A domain specific language (DSL) can then be used to provide the implementation for specific elements (complex types) of the OOXML format.
Details can be found on the OOXML Framework page.