Office Open XML

09.03.2021

Office Open XML (OOXML, DOCX, XLSX, PPTX, проект ISO/IEC IS 29500:2008) — серия форматов файлов для хранения электронных документов пакетов офисных приложений — в частности, Microsoft Office. Формат представляет собой zip-архив, содержащий текст в виде XML, графику и другие данные, которые ранее хранились в двоичных форматах DOC, XLS и т. д.

Первоначально формат создавался как замена прежнему двоичному формату документов, который использовали приложения Microsoft Office вплоть до версии Office 2003 включительно, и конкурент стандартизированному прямо перед этим OpenDocument. В 2006 году формат Office Open XML был объявлен свободным и открытым форматом Ecma International. Он является форматом по умолчанию для приложений Microsoft Office 2007 и более поздних.

Две разные версии OOXML определены в ECMA-376 и в ISO 29500:2008. Полная поддержка формата ISO 29500 ожидалась (но не появилась) в Microsoft Office 2010.

С созданием OOXML двоичные форматы Microsoft открыли на несвободных условиях Microsoft Open Specification Promise — к тому времени они были частично распознаны, но исчерпывающей документации не существовало.

Стандартизация

Предпосылки

Microsoft Office, собранный в 1990 году из программ, появившихся ещё в 80-е, не рассчитывался на взаимообмен. Если же нужно использовать документы Office в чужом ПО — для этого есть Component Object Model и более простые форматы наподобие RTF.

К 2005 году участились призывы к госструктурам переходить на открытые форматы. Если в бывшем СССР культура пользования лицензионным ПО была ещё слаба, в Европе закрытый формат правительственных документов фактически стал требованием платить из государственных бюджетов Microsoft — американской компании — несколько сотен долларов за рабочее место. Осознав, что у неё нет подходящего формата, а конкуренты, OASIS, проводят свой ODF через ISO, Microsoft на основе своих DOC и XLS создала свой XML-формат и провела его через Ecma International и ISO. Началась эта процедура в 2006 году и закончилась в 2008 — чуть больше двух лет на всё (ODF начали стандартизировать ещё в 2002-м, и спустя 15 лет работа всё ещё далека от завершения). Оппоненты обнаружили в этом начинании множество нарушений внутренних процедур ISO.

Ecma International

Microsoft заявила, что Office Open XML будет открытым стандартом, и представила его на утверждение Ecma International (ECMA). 8 декабря 2005 года ECMA организовала технический комитет 45 (TC45), чтобы «выпустить формальный стандарт для офисных приложений, полностью совместимый с форматами Office Open XML, представленными Microsoft». Предложение также поддержали Apple Inc., Barclays Capital, BP, the British Library, Essilor, Intel, NextPage., Statoil ASA и Toshiba.

ISO/IEC

5 сентября 2007 года принятие варианта OOXML как стандарта ISO/IEC 29500 было временно отклонено по результатам голосования.

В марте 2008 года изменённая спецификация была принята как будущий стандарт ISO/IEC 29500. В частности, в Норвегии при этом были отмечены нарушения процесса стандартизации. Позже оказалось, что файлы, сохраняемые Microsoft Office 2007, не проходят тестов на соответствие стандарту, что нарушает правила принятия стандарта через процедуру Fast-Tracking, требующие, чтобы существовали реализации стандарта.

В мае 2008 были поданы апелляции от ЮАР, Бразилии и Индии, Венесуэлы. Также подана жалоба о нескольких нарушениях от Open Source Leverandørforeningen в Дании.

Публикация ISO/IEC DIS 29500 была отложена на период рассмотрения апелляций (30 дней).

В июле руководители ISO и IEC порекомендовали Technical Management Board отклонить апелляции, указав в качестве причины то, что проект стандарта был принят голосованием в соответствии с директивами ISO/IEC JTC 1.

В августе ISO отклонила апелляции стран, выступающих против принятия OOXML как стандарта, так как они не смогли получить поддержку необходимого числа участников ISO для приостановления принятия стандарта

В конце августа государственные IT‐организации Бразилии, ЮАР, Венесуэлы, Эквадора, Кубы и Парагвая опубликовали заявление о сомнениях в нейтральности ISO.

В Норвегии, где из 21 голоса «против» и двух голосов «за» получилось «за», 29 сентября 2008 года 13 членов технической комиссии в знак протеста вышли из состава Standard Norge.

По данным собрания ISO/IEC JTC1/SC34, подкомиссии ISO/IEC JTC1, в начале октября SC34 отправила OASIS неопубликованный запрос на передачу ей контроля над стандартом ISO/IEC 26300 (ODF), обосновывая это стремлением к лучшей совместимости между стандартами. В Groklaw также обратили внимание на то, что 9 из 20 присутствовавших на собрании в июле являлись сотрудниками или консультантами Microsoft, либо членами ECMA TC45. В результате появились подозрения в попытке захвата Microsoft контроля над ODF.

Дальнейшая жизнь стандарта

После того, как OOXML стандартизовали, работа над стандартом приостановилась; Microsoft Office 2010 всё ещё отвечал «переходным» требованиям OOXML, но не «строгим». Microsoft пообещал полное соответствие в следующей версии. ISO пригрозила убрать переходные части из стандарта.

Office 2013 начал поддерживать строгий OOXML. По умолчанию сохранение всё ещё, даже на 2016 год, идёт в переходной.

25 июня 2014 года Microsoft выпустила Open XML SDK в open source под лицензией Apache 2.0.

Поддержка в текстовых процессорах

Предыдущие версии MS Office

Большей популярностью на 2007 год пользуются его предшественники — двоичные форматы Microsoft Office 97—2003. Поддержка одной из версий OOXML (не соответствующая ISO/IEC 29500) появилась в Microsoft Office 2007. Для работы с этим форматом в предыдущих версиях MS Office Microsoft предлагает установить Microsoft Office Compatibility Pack, который обеспечивает «прозрачную» работу с форматами Office 2007 пакетов MS Office 2000, XP и 2003.

Поддержка формата в других текстовых процессорах

В OpenOffice.org 3 версии присутствует частичная встроенная поддержка OOXML. Для решения данной проблемы существуют онлайн-конверторы, способные конвертировать формат DOCX в другие форматы. Также существует плагин (разработанный фирмой Novell), позволяющий открывать и сохранять файлы в этом формате в ОС семейств SUSE и Microsoft Windows.

Поддержка формата OOXML в текстовом процессоре Corel Word Perfect ожидалась в середине 2007 года.

Критика

  • На момент стандартизации не существовало ни одной программы, работавшей с OOXML. Потому режим стандартизации fast track, предназначенный для широко используемых стандартов, был явно излишним.
  • Сам формат предназначен для «точного представления ранее сформированного корпуса электронных документов, таблиц и презентаций, созданных с помощью приложений Microsoft Office». Со стороны Microsoft дать доступ стороннему ПО к своим документам — это похвальное начинание, однако этого явно мало для кроссплатформенного и межгосударственного обмена документами.
  • Юридическая организация Software Freedom Law Center указала на проблемы с условиями, под которыми Microsoft опубликовали спецификацию Microsoft Open Specification Promise: право на использование патента на «технологию» даётся только для кода, реализующего её — частично или полностью, — и не распространяется на работы (в том числе и производные от упомянутого кода), не связанные напрямую с данной технологией.
  • Название Office Open XML слишком похоже на OpenOffice.org XML, что приводит к путанице. Такое уже случалось с предложениями стандартов от Microsoft.
  • Несмотря на то, что информация о формате открыта, он защищён патентами Microsoft, и любая программа (нарушающая лицензионное соглашение на использование запатентованных составляющих стандарта) для чтения Open XML нарушит законы США.
  • Документация к Open XML занимает более 7000 страниц, что является излишне большим объёмом и существенно усложняет попытку создания программы с поддержкой Open XML.
  • Из‑за широкого использования в Open XML битовых масок невозможно провести формальную проверку XML‐файла с помощью DTD или XSD.
  • Open XML является, по сути, переводом в XML бинарных форматов Microsoft Office. Как ручное редактирование, так и поддержка Open XML в других программах серьёзно затруднены. Размеры бумаги перенумерованы числами от 1 до 68, вместо имён A4, B5 и т. д; аналогично сделано с кодами языков. Некоторые наименования цветов отличаются от стандартных.
  • Формат поддерживает вставку двоичных данных, что в будущем может привести к несовместимости.
  • Формат времени, доставшийся Open XML по наследству от Microsoft Excel, а тому — от Lotus 1-2-3, отсчитывает годы, начиная с 1900. При этом сам 1900 год неправильно трактуется как високосный, вследствие чего все даты до 28 февраля 1900 года включительно имеют неправильное соответствие с днём недели. Также в формате времени не задан часовой пояс, и временные расчёты не учитывают переходов на летнее время.
  • Использование специального формата математических формул, который имеет альтернативу в виде MathML и вдобавок был отвергнут консорциумом W3C ещё в 1997 году. В других местах также используются собственные форматы Microsoft — например, для векторной графики применяется внутренний формат Windows WMF, а не стандартизированный SVG.
  • Нет локализации для семитских языков и языков с начертанием справа налево.
  • Отсутствие поддержки языков с начертанием справа налево и, как результат, невозможность написания документов на арабском языке, иврите и др.
  • Отсутствие поддержки других выходных дней недели, кроме субботы-воскресенья: в частности, пятницы-субботы (в Израиле) и четверга-пятницы (в странах Ближнего Востока).