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 →