OOXML strict support in Libreoffice

Recently it came to our attention that we can only handle OOXML transitional and the older Microsoft dialect of OOXML. A short analysis of the document showed that OOXML strict uses different namespaces and different relationship URLs.

After two days of hacking and a lot of help from Miklos Vajna, who fixed the docx import problems, we support now OOXML strict import in master and in the Libreoffice 4-2 branch.

Please test this feature with a daily build or with the upcoming Libreoffice 4.2.3 and report problems that you have with OOXML strict.

Advertisements

About Markus Mohrhard

Hacking at Libreoffice calc
This entry was posted in Libreoffice and tagged . Bookmark the permalink.

10 Responses to OOXML strict support in Libreoffice

  1. quest says:

    Who is using OOXML strict?

    (Nobody I suppose)

  2. Rob Pearson says:

    You can be sure that many will set their default to OOXML strict in Office 2013. This plus ODF is likely where things will be heading in coming years.

  3. Aha says:

    @quest: At this stage, MS Office 2013 saves transitional OOXML as default, but the user is able to save as OOXML strict. Very few people do this at the moment. However, I have already received a few files that corresponded to the strict standard (and had caused problems in the LibreOffice import).
    Microsoft will likely switch on strict OOXML as default in one of the future Office versions.

  4. I seem to be confused a bit about this. Wasn’t the ‘Office Open XML Text’ found even from 3.6 importing OOXML Strict. You mentioned ‘older Microsoft dialect of OOXML’, which version of MS Office uses this older dialect and does it have a given name similar to Strict and Transitional.

    • The one already found in the dialogs has been the Transitional and the dialect for OOXML used by Microsoft Office 2003 and 2007. They don’t write valid OOXML transitional files and can actually not even import them. You find also in Libreoffice two different export filters: The OOXML transitional and the default MSO OOXML, which represents the dialect understood also by MSO 2003/2007.

      • Just to be clear, is the export option labelled ‘Microsoft Word 2007/2010/2013 XML (.docx)’ OOXML transitional or MSO 2003/2007. Does LibO plan to export into OOXML strict and if so, what export label will it be given in the future. Also i have outputted OOXML Strict files from office 2013 and opened them successfully in 4.2.3.3, so how is this possible if support for strict was only just added to 4.3.

  5. Rob Pearson says:

    I am confused too, is the following summary of file format support correct:
    2003 quirky Microsoft dialect of OOXML which is not transitional, no ODF, no import of OOXML transitional, no import of OOXML transitional
    2007 as 2003, + ODF 1.1 that breaks ODS formula
    2010 OOXML transitional, + ODF 1.1 that breaks ODS formula (Import OOXML strict with a plugin)
    2013 OOXML transitional, + OOXML strict, + ODF 1.2 with no track changes
    what about Mac 2011?
    Microsoft will do anything to keep control of their secret proprietary editable document file formats, even with the guise of an ISO number

    • So was 2003’s quirky Microsoft dialect of OOXML the same as what ms office exports as ‘Word 2003 XML Document (*.xml)’, but with a .docx extension. Yep Microsoft likes screwing with us big time and we have to keep up with making more and more filters for more and more upgrades to their supposed open formats.

  6. Confused? says:

    Markus, are there 3 versions of docx/xlsx/pptx: dialect of OOXML, OOXML transitional, and OOXML strict? i.e. All with the docx/xlsx/pptx suffix.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s