open xml overview - interopevents.blob.core.windows.net · tom jebo. introduction to open xml file...

22
Office 365 DevDays 2017.11.4-6 | 上海 Office 365 DevDays 2017.11.4-6 | 上海 Open XML Overview Tom Jebo

Upload: others

Post on 10-Jul-2020

11 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Open XML Overview - interopevents.blob.core.windows.net · Tom Jebo. Introduction to Open XML File Format Standard WordprocessingML, SpreadsheetML, PresentationML & DrawingML Versioning

Office 365 DevDays

2017.11.4-6 | 上海

Office 365 DevDays

2017.11.4-6 | 上海

Open XML Overview

Tom Jebo

Page 2: Open XML Overview - interopevents.blob.core.windows.net · Tom Jebo. Introduction to Open XML File Format Standard WordprocessingML, SpreadsheetML, PresentationML & DrawingML Versioning

Introduction to Open XML File Format Standard

WordprocessingML, SpreadsheetML, PresentationML & DrawingML

Versioning and Namespaces

Compatibility in Documents

Programming the Document Format ( OpenXML SDK)

Open XML SDK on Github

Demo

Tools

Support & Resources

Agenda

Page 3: Open XML Overview - interopevents.blob.core.windows.net · Tom Jebo. Introduction to Open XML File Format Standard WordprocessingML, SpreadsheetML, PresentationML & DrawingML Versioning

Introduction to Open XML Format

• Brief history of Office Open XML

• Get the Standard

• Tour of the Office Open XML Standard

Page 4: Open XML Overview - interopevents.blob.core.windows.net · Tom Jebo. Introduction to Open XML File Format Standard WordprocessingML, SpreadsheetML, PresentationML & DrawingML Versioning

Brief history of Office Open XML

2000

First XML based format used by

OfficeXP

2003

Microsoft Office XML format

released in Office 2003

2005/6

Office Open XML submitted to ECMA

Int’l

2007

Office 2007 makes OOXML default file

format

2008

ISO/IEC 29500:2008 published

ISO 29500:2012

ISO 29500:2016

Page 5: Open XML Overview - interopevents.blob.core.windows.net · Tom Jebo. Introduction to Open XML File Format Standard WordprocessingML, SpreadsheetML, PresentationML & DrawingML Versioning

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

Page 6: Open XML Overview - interopevents.blob.core.windows.net · Tom Jebo. Introduction to Open XML File Format Standard WordprocessingML, SpreadsheetML, PresentationML & DrawingML Versioning

Get the standard iso 29500 download

Page 7: Open XML Overview - interopevents.blob.core.windows.net · Tom Jebo. Introduction to Open XML File Format Standard WordprocessingML, SpreadsheetML, PresentationML & DrawingML Versioning

Tour of the Office Open XML Standard

• Markup Fundamentals

• Packaging

• Compatibility and Extensibility

• Transitional

Page 8: Open XML Overview - interopevents.blob.core.windows.net · Tom Jebo. Introduction to Open XML File Format Standard WordprocessingML, SpreadsheetML, PresentationML & DrawingML Versioning

Markup Fundamentals

Parts

Reference

Part 1

Page 9: Open XML Overview - interopevents.blob.core.windows.net · Tom Jebo. Introduction to Open XML File Format Standard WordprocessingML, SpreadsheetML, PresentationML & DrawingML Versioning

Packaging

Packaging

Model

Part 2

Page 10: Open XML Overview - interopevents.blob.core.windows.net · Tom Jebo. Introduction to Open XML File Format Standard WordprocessingML, SpreadsheetML, PresentationML & DrawingML Versioning

Compatibility and Extensibility

MCE elements

and attributes

Part 3

Page 11: Open XML Overview - interopevents.blob.core.windows.net · Tom Jebo. Introduction to Open XML File Format Standard WordprocessingML, SpreadsheetML, PresentationML & DrawingML Versioning

Transitional

Namespaces

and elements in

transitional

markup

Part 4

Page 12: Open XML Overview - interopevents.blob.core.windows.net · Tom Jebo. Introduction to Open XML File Format Standard WordprocessingML, SpreadsheetML, PresentationML & DrawingML Versioning

WordprocessingML, SpreadsheetML, PresentationML & DrawingML• Parts and elements to get started:

• WordprocessingML• 11.3.10 (document.xml)

• 17.2 and 17.3 (body, paragraphs and runs)

• SpreadsheetML• 12.3.24 (sheet<x>.xml)

• 18.3 (Worksheet elements)

• PresentationML• 13.3.8 (slide<x>.xml)

• 19.3 (slide elements)

• Schemas: • Annex A – W3C XML1

• Annex B – RELAX NG9

• Primer• Annex L – detailed intro to the ML’s. Use this!

<w:document<w:body><w:p w14:paraId="2673269E" w14:textId="522FD3EB" w:rsidR="00BD0355" w:rsidRDefault="00BD0355">

<w:r><w:t xml:space="preserve">This is a run of text. It is part of a paragraph.

</w:r></w:p>

<w:p w14:paraId="43453C87" w14:textId="3F744A5F" w:rsidR="00BD0355" w:rsidRDefault="00BD0355"><w:r>

<w:t>Here is another run of text in a new paragraph.</</w:r>

</w:p>

<worksheet xmlns="http://schemas.openxmlformats.org/spreadsheetml<dimension ref="A1:B4"/><sheetData>

<row r="1" spans="1:2" x14ac:dyDescent="0.25"><c r="A1">

<v>1</v></c>

</row><row r="2" spans="1:2" x14ac:dyDescent="0.25">

<c r="A2"><v>2</v>

</c></row><row r="4" spans="1:2" x14ac:dyDescent="0.25">

<c r="B4" t="s"><v>1</v>

</c>

<p:sld xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main" <p:cSld>

<p:spTree><p:sp>

<p:nvSpPr><p:cNvPr id="2" name="Title 1"/><p:cNvSpPr>

<a:spLocks noGrp="1"/></p:cNvSpPr>

</p:nvSpPr><p:spPr/><p:txBody>

<a:p><a:r>

<a:rPr lang="en-US" dirty="0" smtClean<a:t>Fancy art from the internet</a:t

</a:r>

Page 13: Open XML Overview - interopevents.blob.core.windows.net · Tom Jebo. Introduction to Open XML File Format Standard WordprocessingML, SpreadsheetML, PresentationML & DrawingML Versioning

Compatibility in Documents

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

Page 14: Open XML Overview - interopevents.blob.core.windows.net · Tom Jebo. Introduction to Open XML File Format Standard WordprocessingML, SpreadsheetML, PresentationML & DrawingML Versioning

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

Page 15: Open XML Overview - interopevents.blob.core.windows.net · Tom Jebo. Introduction to Open XML File Format Standard WordprocessingML, SpreadsheetML, PresentationML & DrawingML Versioning

Programming the Document Format (OpenXML SDK)

• SDK Classes

• Open XML SDK on Github

• Scenarios

• Demo

Page 16: Open XML Overview - interopevents.blob.core.windows.net · Tom Jebo. Introduction to Open XML File Format Standard WordprocessingML, SpreadsheetML, PresentationML & DrawingML Versioning

SDK Classes OOXMLSDK API

Part API DOM APIFramework

APISchema

validationSemantic validation

DocumentFormat.OpenXml.dll

1. Generate OpenXmlPart

API Source Code

2. Build Framework

API

3. Process Schema Files

4. Generate DOM API

Source Code

5. Generate Schema

Validation Data

6. Generate Semantic Validation

Data

7. Build OOXMLSDK

DLL

SDK Class generation process

Page 17: Open XML Overview - interopevents.blob.core.windows.net · Tom Jebo. Introduction to Open XML File Format Standard WordprocessingML, SpreadsheetML, PresentationML & DrawingML Versioning

Open XML SDK on Github

Github

Fork, build, modify

Nuget package

Release and latest builds

Issues

Report bugs

Contribution

Enhancements, fixes

Page 18: Open XML Overview - interopevents.blob.core.windows.net · Tom Jebo. Introduction to Open XML File Format Standard WordprocessingML, SpreadsheetML, PresentationML & DrawingML Versioning

Scenarios

Generation Extraction Transform

WordprocessingML

SpreadsheetML

PresentationML

Page 19: Open XML Overview - interopevents.blob.core.windows.net · Tom Jebo. Introduction to Open XML File Format Standard WordprocessingML, SpreadsheetML, PresentationML & DrawingML Versioning

Building a C# Solution to Generate a .docx DocumentDemonstration

Page 20: Open XML Overview - interopevents.blob.core.windows.net · Tom Jebo. Introduction to Open XML File Format Standard WordprocessingML, SpreadsheetML, PresentationML & DrawingML Versioning

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)

Page 21: Open XML Overview - interopevents.blob.core.windows.net · Tom Jebo. Introduction to Open XML File Format Standard WordprocessingML, SpreadsheetML, PresentationML & DrawingML Versioning

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

Page 22: Open XML Overview - interopevents.blob.core.windows.net · Tom Jebo. Introduction to Open XML File Format Standard WordprocessingML, SpreadsheetML, PresentationML & DrawingML Versioning

Office 365 DevDays

Thank you