Открыть сервис

Office Open XML

Office Open XML (OOXML) — это семейство форматов файлов, основанных на языке разметки XML, предназначенных для хранения и обмена офисными документами, включая текстовые документы, электронные таблицы, презентации, диаграммы и графические объекты. Формат был разработан корпорацией Microsoft и впоследствии стандартизирован международными организациями, что обеспечило его совместимость с различными программными продуктами, не ограничиваясь пакетом Microsoft Office.

История

Предпосылки создания

До появления OOXML основным форматом для офисных документов в Microsoft Office был двоичный формат (например, .doc, .xls, .ppt). Эти форматы были закрытыми, проприетарными и плохо документированными, что создавало проблемы для взаимодействия с другими офисными пакетами, а также для долгосрочного хранения данных. С ростом популярности открытых стандартов, таких как OpenDocument (ODF), и необходимостью интеграции с веб-технологиями, Microsoft начала разработку нового формата на основе XML.

Разработка и стандартизация

Первая версия OOXML (Ecma-376) была представлена в 2006 году. Microsoft передала спецификацию на рассмотрение в организацию Ecma International, которая утвердила её в качестве стандарта. В 2008 году OOXML был принят как международный стандарт ISO/IEC 29500 после длительного и противоречивого процесса голосования, сопровождавшегося критикой со стороны ряда стран и организаций, включая IBM, Sun Microsystems и Фонд свободного программного обеспечения. Основные претензии касались сложности спецификации, избыточности и неполной совместимости с ODF.

Версии и развитие

Стандарт OOXML развивается в нескольких версиях. В Microsoft Office используется собственная реализация, которая включает как строгое соответствие стандарту (Strict), так и переходный режим (Transitional), обеспечивающий обратную совместимость со старыми двоичными форматами. Актуальная версия стандарта ISO/IEC 29500:2016 включает уточнения и исправления, направленные на повышение интероперабельности.

Классификация и структура

Основные форматы

OOXML определяет несколько базовых форматов, каждый из которых соответствует определённому типу документов:

  • WordprocessingML (.docx) — для текстовых документов.
  • SpreadsheetML (.xlsx) — для электронных таблиц.
  • PresentationML (.pptx) — для презентаций.
  • DrawingML — для векторной графики, диаграмм и схем.

Архитектура файла

Файлы OOXML представляют собой ZIP-архивы, содержащие набор XML-файлов и, при необходимости, медиа-ресурсы (изображения, аудио, видео). Такая структура обеспечивает сжатие данных и упрощает доступ к отдельным компонентам документа без его полной распаковки. Основные элементы архива:

  • [Content_Types].xml — описывает типы содержимого внутри архива.
  • \_rels/.rels — файл связей, определяющий взаимосвязи между частями документа.
  • word/document.xml (для .docx) — основной файл с содержимым документа.
  • word/styles.xml — файл стилей форматирования.
  • media/ — папка для встроенных изображений и других ресурсов.

Типы и версии стандарта

Стандарт ISO/IEC 29500 предусматривает два основных режима:

  • Strict — строгое соответствие спецификации, предназначенное для новых приложений и долгосрочного хранения.
  • Transitional — переходный режим, включающий элементы обратной совместимости с двоичными форматами Microsoft Office (например, поддержка макросов VBA, определённых типов полей и устаревших объектов).

Характеристики и особенности

Преимущества

  • Открытость и документированность: спецификация опубликована и доступна для изучения, что позволяет создавать совместимые приложения.
  • Сжатие: использование ZIP-архива уменьшает размер файлов по сравнению с двоичными аналогами.
  • Модульность: возможность извлечения и редактирования отдельных частей документа (например, стилей или изображений) без обработки всего файла.
  • Расширяемость: поддержка пользовательских схем XML и произвольных данных.
  • Интеграция с веб-технологиями: XML-основа упрощает обработку документов серверными приложениями и веб-сервисами.

Недостатки и критика

  • Сложность спецификации: объём документации превышает 6000 страниц, что затрудняет полную реализацию стандарта.
  • Избыточность: наличие нескольких способов представления одного и того же элемента (например, форматирования текста) усложняет разработку конвертеров.
  • Неполная совместимость с ODF: несмотря на усилия, полная конвертация между OOXML и ODF часто приводит к потере форматирования или функциональности.
  • Зависимость от реализации Microsoft: многие функции, доступные в Microsoft Office, не описаны в стандарте или реализованы с отклонениями от него, что создаёт проблемы для сторонних разработчиков.

Применение

В офисных пакетах

OOXML является основным форматом для Microsoft Office начиная с версии 2007 (Microsoft Office 2007). Он также поддерживается многими другими офисными приложениями:

  • LibreOffice и Apache OpenOffice — через встроенные фильтры импорта и экспорта.
  • Google Документы, Яндекс.Документы — с возможностью сохранения и загрузки в формате .docx.
  • WPS Office, OnlyOffice — с полной или частичной совместимостью.

Обмен документами

Благодаря широкой распространённости, OOXML стал де-факто стандартом для обмена офисными документами в деловой среде, образовании и государственных учреждениях. В России формат .docx используется в документообороте, хотя для официального делопроизводства могут применяться и другие форматы (например, ODF или PDF/A).

Долгосрочное хранение

Стандарт ISO/IEC 29500 рекомендован для долгосрочного хранения электронных документов (например, в архивах), однако из-за сложности и наличия переходных режимов предпочтение часто отдаётся более простым форматам, таким как PDF/A или ODF.

Интересные факты

  • Первоначально OOXML назывался «Microsoft Office Open XML» (MOOX), но в процессе стандартизации название было сокращено.
  • В 2008 году голосование по принятию OOXML в ISO сопровождалось обвинениями в нарушении процедур и давлении со стороны Microsoft на национальные комитеты.
  • Формат .docx, в отличие от .doc, не поддерживает макросы VBA в безопасном режиме; для их хранения используется отдельный формат .docm.
  • Внутренняя структура OOXML позволяет открывать файл как обычный ZIP-архив, что даёт возможность просматривать и редактировать его содержимое без специализированного ПО.

Источники

  • ISO/IEC 29500-1:2016 — Information technology — Document description and processing languages — Office Open XML File Formats.
  • Ecma International. Standard ECMA-376 — Office Open XML File Formats.
  • Microsoft Corporation. Документация по форматам файлов Office.
  • Обсуждение стандартизации OOXML на форумах ISO и Ecma (2006–2008).

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →