OOXML: Strict to Transitional - Asbjoedt/CLISC GitHub Wiki

Essentially a Strict .xlsx is identical to a Transitional .xlsx in terms of the content it can store and which can be validated, but a few namespaces and the conformance class attribute are different.

However, the same is not true when converting from .xlsx Transitional to .xlsx Strict, because Transitional conformance allows compatibility with legacy Excel file formats. Read how to convert from Transitional to Strict <- in this article.

XML changes

To convert a .xlsx spreadsheet saved in Strict conformance to .xlsx in Transitional conformance, the following changes to the spreadsheet's XML are necessary. To reach the spreadsheet's XML code, rename the file with suffix ".zip" and then unzip the folder. Commit the following changes to the XML code of a Strict .xlsx spreadsheet to change from Strict to Transitional conformance.

Namespaces

In [Content_Types].xml and any file in folders xl and xl/worksheets:

Replace http://purl.oclc.org/ooxml/spreadsheetml/main with http://schemas.openxmlformats.org/spreadsheetml/2006/main

In workbook.xml and files in the folder _rels and xl/rels:

Replace http://purl.oclc.org/ooxml/officeDocument/relationships with http://schemas.openxmlformats.org/officeDocument/2006/relationships

In folder _rels, xl/rels and any relationship folders e.g. externalLinks, relationships are mapped in .rels files and in these files, the above namespaces will have suffixed paths after /relationships e.g. /relationships/externalLinkPath. Keep the suffixed paths and merge them with the above namespace.

In any file in folder /xl/theme e.g. theme1.xml:

Replace http://purl.oclc.org/ooxml/drawingml/main with http://schemas.openxmlformats.org/drawingml/2006/main

Workbook conformance class

In workbook.xml before tag <fileVersion:

conformance="strict">

Replace strict with transitional

conformance="strict" could be deleted alltogether since no appearance of conformance class means by default the spreadsheet is transitional, but I prefer to have it explicit.

urn:schemas

Any file in folder xl/worksheets e.g. sheet1.xml:

Delete xmlns:v="urn:schemas-microsoft-com:vml"