Open XML Overview
Office 365 DevDays
2017.11.4-6 | 上海
Tom Jebo Introduction to Open XML File Format Standard
WordprocessingML, SpreadsheetML, PresentationML & DrawingML
Versioning and Namespaces
Compatibility in Documents Agenda Programming the Document Format ( OpenXML SDK) Open XML SDK on Github
Demo
Tools
Support & Resources Introduction to Open XML Format
• Brief history of Office Open XML • Get the Standard • Tour of the Office Open XML Standard Brief history of Office Open XML
2003 2000 2005/6 2007 2008 Microsoft Office First XML based Office Open XML Office 2007 makes ISO/IEC XML format format used by submitted to ECMA OOXML default file 29500:2008 released in Office OfficeXP Int’l format published 2003
ISO ISO 29500:2012 29500:2016 Support by Office Version
• Office 2007 • First to support OOXML, default format • ECMA-376 support • Office 2010 • ISO/IEC 29500 “Transitional” r/w – fidelity with older versions • ISO/IEC 29500 “Strict” read • ECMA-376 read • Office 2013, 2016 • ISO/IEC 29500 “Strict” r/w • i.e. File | Save As… and choose “Strict Open XML Presentation (*.pptx)” • Office365, Office for Android and iPad • “Strict” r/w Get the standard iso 29500 download Tour of the Office Open XML Standard
• Markup Fundamentals • Packaging • Compatibility and Extensibility • Transitional Markup Fundamentals Part 1
Parts
Reference Packaging Part 2
Packaging Model Compatibility and Extensibility Part 3
MCE elements and attributes Transitional Part 4
Namespaces and elements in transitional markup WordprocessingML, SpreadsheetML, PresentationML & DrawingML
Allow consumers to: • Be aware and benefit from the new features. • Be unaware and still interoperable • Be unaware and “degrade gracefully”
Attributes: • mc:Ignorable – allows consumer to ignore whole namespace • mc:ProcessContent – consumer process ignorable element contents as if in outer element. • mc:MustUnderstand – consumer throws error before processing any misunderstood ns elements
Elements: • mc:AlternateContent – provides choices and fallback content • mc:Choice/mc:Fallback Supporting Open Specifications
• [MS-OI29500] • Notes for Microsoft Office products implementing ISO/IEC 29500
• [MS-ODRAWXML] • [MS-DOCX] • [MS-XLSX] • [MS-PPTX] • Extensions to the DrawingML, WordprocessingML, SpreadsheetML and PresentationML standard elements defined in ISO/IEC 29500
• See reference note for URL to MSDN page for these.10 Programming the Document Format (OpenXML SDK) • SDK Classes • Open XML SDK on Github • Scenarios • Demo DocumentFormat.OpenXml.dll SDK Classes OOXMLSDK API
Framework Schema Semantic Part API DOM API API validation validation
SDK Class generation process
1. Generate 5. Generate 6. Generate 2. Build 4. Generate 7. Build OpenXmlPart 3. Process Schema Semantic Framework DOM API OOXMLSDK API Source Schema Files Validation Validation API Source Code DLL Code Data Data Open XML SDK on Github
Github Fork, build, modify
Nuget package Release and latest builds
Issues Report bugs
Contribution Enhancements, fixes Scenarios
Generation Extraction Transform
WordprocessingML
SpreadsheetML
PresentationML Building a C# Solution to Generate a .docx Document
Demonstration Tools
Open XML Package Editor for Visual Studio: https://github.com/OfficeDev/Open-XML-Package-Editor-Power-Tool- for-Visual-Studio
OOXML Tools Extension for Chrome (search and install in Chrome)
Open XML SDK Productivity Tool (search “open xml sdk 2.5”, click download, OpenXMLSDKToolV25.msi) Support & Resources
SDK Open XML SDK: https://github.com/OfficeDev/Open-Xml-Sdk OpenXMLDeveloper: http://www.openxmldeveloper.org libopc: http://libopc.codeplex.com (third-party open source OOXML library)
Open Specifications [email protected] https://social.msdn.microsoft.com/Forums/en- US/home?category=openspecifications Thank you
Office 365 DevDays