Office Open XML

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 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, не проходят тестов на соответствие стандарту, что нарушает правила принятия стандарта через процедуру , требующие, чтобы существовали реализации стандарта.

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

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

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

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

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

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

По данным собрания 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 дать доступ стороннему ПО к своим документам — это похвальное начинание, однако этого явно мало для кроссплатформенного и межгосударственного обмена документами.
 Юридическая организация  указала на проблемы с условиями, под которыми 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.
 Нет локализации для семитских языков и языков с начертанием справа налево.
 Отсутствие поддержки языков с начертанием справа налево и, как результат, невозможность написания документов на арабском языке, иврите и др.
 Отсутствие поддержки других выходных дней недели, кроме субботы-воскресенья: в частности, пятницы-субботы (в Израиле) и четверга-пятницы (в странах Ближнего Востока).

См. также 
 ISO
 IEC
 OpenDocument

Примечания

Статьи

Ссылки 
 ECMA-376 — Office Open XML file formats на сайте Ecma International
 Сайт Microsoft для разработчиков openxmldeveloper.org
 Сайт Microsoft для покупателей и партнеров
  Официальная открытая публикация стандартов формата файлов
 Пакет обеспечения совместимости Microsoft Office для форматов файлов Word, Excel и PowerPoint 2007

Microsoft Office
Форматы текстовых документов
Форматы электронных таблиц
 
Стандарты ECMA