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

Open XML

Open XML — это семейство открытых форматов файлов, разработанных корпорацией Microsoft для представления и хранения офисных документов: текстов, электронных таблиц, презентаций, заметок и формул. Форматы базируются на языке разметки XML и сжатии ZIP, что обеспечивает их программную независимость, возможность автоматизированной обработки и проверку на соответствие стандарту. Open XML был стандартизирован международной организацией ISO/IEC (стандарт ISO/IEC 29500:2008) и является альтернативой формату OpenDocument (ODF).

История

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

До появления Open XML основным форматом хранения документов в пакете Microsoft Office был двоичный формат (BIFF — Binary Interchange File Format), использовавшийся в версиях Office 97—2003. Эти форматы были закрытыми, плохо поддавались межплатформенной совместимости и не могли быть легко прочитаны сторонними программами. В начале 2000-х годов, в условиях роста популярности веб-технологий и требований к открытости данных, Microsoft начала разработку нового формата на основе XML.

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

Первая версия спецификации Open XML была опубликована Microsoft в декабре 2006 года как часть пакета Microsoft Office 2007 (ранее известного как Office 12). В 2007 году спецификация была передана на рассмотрение в Ecma International, где была принята как стандарт Ecma-376. В 2008 году, после длительного процесса обсуждения и внесения поправок, Open XML был утверждён Международной организацией по стандартизации (ISO) и Международной электротехнической комиссией (IEC) как стандарт ISO/IEC 29500:2008. Впоследствии стандарт неоднократно обновлялся (например, версия 2012 года, версия 2016 года).

Конфликт с ODF

Стандартизация Open XML сопровождалась острой полемикой. Противники (включая сторонников формата OpenDocument — ODF) обвиняли Microsoft в попытке навязать свой проприетарный формат в качестве международного стандарта, указывая на его избыточность (например, поддержку устаревших функций из двоичных форматов) и недостаточную открытость. Сторонники (включая Ecma и ряд национальных органов стандартизации) настаивали на том, что Open XML является полноценным открытым стандартом, обеспечивающим обратную совместимость с миллионами существующих документов. В результате ISO/IEC утвердила оба формата (ODF — ISO/IEC 26300, Open XML — ISO/IEC 29500) как равноправные международные стандарты.

Версии и редакции

Стандарт ISO/IEC 29500 существует в нескольких редакциях, соответствующих разным версиям Office и уточнениям спецификации:

  • ISO/IEC 29500:2008 — первая редакция, основанная на Ecma-376. Включала четыре части: основные принципы и маркировка, открытые схемы, маркировка совместимости и переходные форматы.
  • ISO/IEC 29500:2012 — вторая редакция, исправлявшая ошибки и уточнявшая некоторые элементы (например, обработку необязательных атрибутов).
  • ISO/IEC 29500:2016 — третья редакция, добавившая поддержку новых функций (например, макросов VBA в формате .xlsm, улучшенную работу с комментариями).
  • ISO/IEC 29500:2021 — четвёртая редакция, актуальная на 2025 год. Включает дальнейшие уточнения и дополнения.

Архитектура и устройство

Общий принцип

Файл Open XML представляет собой ZIP-архив, содержащий набор XML-файлов, а также, при необходимости, двоичные ресурсы (изображения, шрифты, аудио). Внутренняя структура архива строго регламентирована: в корневом каталоге находится файл [Content_Types].xml, описывающий типы содержимого, а также папки _rels, docProps и папки для каждого типа документа (например, word, xl, ppt).

Основные компоненты

  • [Content_Types].xml — обязательный файл, перечисляющий все типы содержимого архива (например, application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml).
  • Папка _rels — содержит файлы связей (.rels), описывающие зависимости между файлами внутри архива (например, связь основного документа с таблицей стилей).
  • Папка docProps — содержит метаданные документа: автора, дату создания, количество страниц и т.д. (файлы core.xml, app.xml).
  • Папка документа (например, word/document.xml) — основной файл, содержащий собственно содержимое документа (текст, таблицы, абзацы, изображения) в виде XML-разметки.
  • Ресурсы — изображения, шрифты, медиафайлы, хранящиеся в подпапках (например, word/media/).

Схемы XML

Open XML использует строгие схемы (XSDXML Schema Definition), описывающие допустимые элементы, атрибуты и их типы. Например, для текстового документа (.docx) используется схема w:document, где элементы w:p (параграф), w:r (run — фрагмент текста), w:t (текст). Для таблиц (.xlsx) — схема s:sheet, для презентаций (.pptx) — p:presentation.

Форматы файлов

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

РасширениеТип документаОписание
.docxДокумент WordТекстовые документы (письма, отчёты, статьи)
.xlsxКнига ExcelЭлектронные таблицы (данные, формулы, диаграммы)
.pptxПрезентация PowerPointПрезентации (слайды, анимация, мультимедиа)
.docmДокумент Word с макросамиТекстовый документ, содержащий макросы VBA
.xlsmКнига Excel с макросамиЭлектронная таблица, содержащая макросы VBA
.pptmПрезентация PowerPoint с макросамиПрезентация, содержащая макросы VBA
.dotxШаблон WordШаблон документа (стили, форматирование)
.xltxШаблон ExcelШаблон электронной таблицы
.potxШаблон PowerPointШаблон презентации
.vsdxДокумент VisioДиаграммы и схемы (формат Visio 2013+)
.oneБлокнот OneNoteЗаметки (формат OneNote 2010+)

Преимущества и недостатки

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

  • Открытость и стандартизация — формат является международным стандартом ISO/IEC, что обеспечивает его долгосрочную доступность и независимость от конкретного программного обеспечения.
  • Обратная совместимость — Open XML спроектирован так, чтобы поддерживать практически все функции старых двоичных форматов (например, макросы VBA, сложные таблицы, встроенные объекты), что облегчает миграцию.
  • Модульность и расширяемость — XML-структура позволяет легко добавлять новые элементы (например, пользовательские схемы, метаданные) без нарушения совместимости.
  • Автоматизация и обработка — файлы могут быть созданы, прочитаны и изменены с помощью любого языка программирования, поддерживающего XML (например, Python, Java, C#), без необходимости использования проприетарных библиотек.
  • Сжатие — использование ZIP-архива уменьшает размер файлов по сравнению с двоичными аналогами (например, .docx обычно меньше .doc при одинаковом содержимом).

Недостатки

  • Избыточность — спецификация Open XML очень объёмна (тысячи страниц), что усложняет её полную реализацию сторонними разработчиками. Многие функции (например, устаревшие свойства из Office 97) включены для обратной совместимости, но не используются в современных документах.
  • Сложность ручного редактирования — XML-код документа может быть трудночитаемым и трудным для правки в текстовом редакторе без специальных инструментов.
  • Зависимость от Microsoft — несмотря на стандартизацию, многие расширенные функции (например, макросы VBA, ActiveX-элементы) реализованы только в Microsoft Office и не поддерживаются другими программами.
  • Конфликт с ODF — наличие двух конкурирующих стандартов (Open XML и ODF) создаёт путаницу при выборе формата для долгосрочного хранения документов.

Применение

Офисные пакеты

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

  • LibreOffice (начиная с версии 3.5) — частичная поддержка чтения и записи.
  • Apache OpenOffice (начиная с версии 3.0) — ограниченная поддержка.
  • Google Документы, Таблицы и Презентации — импорт и экспорт в форматы .docx, .xlsx, .pptx.
  • Apple iWork (Pages, Numbers, Keynote) — импорт и экспорт.
  • WPS Office (Kingsoft Office) — полная поддержка.

Автоматизация документооборота

Благодаря открытой XML-структуре, Open XML активно используется в корпоративных системах для автоматической генерации документов (например, отчётов, договоров, справок) из баз данных. Программы на языках Python (библиотеки python-docx, openpyxl), Java (Apache POI) и C# (Open XML SDK) позволяют создавать и изменять документы без участия пользователя.

Архивация и долгосрочное хранение

Open XML рекомендуется для хранения документов в государственных и коммерческих архивах благодаря своей открытости и стандартизации. Однако некоторые организации отдают предпочтение формату PDF/A для окончательного хранения, так как он не зависит от программного обеспечения.

Критика

Избыточность и сложность

Критики (в том числе из сообщества разработчиков открытого ПО) отмечают, что спецификация Open XML чрезмерно сложна и содержит множество устаревших элементов. Например, для представления простого абзаца может использоваться несколько десятков вложенных XML-элементов, что затрудняет ручную обработку.

Неполная совместимость

Несмотря на стандартизацию, реализация Open XML в разных программах часто приводит к потере форматирования или функциональности при обмене файлами. Например, сложные таблицы, созданные в Microsoft Excel, могут некорректно отображаться в LibreOffice Calc.

Патентные риски

В период стандартизации высказывались опасения, что Microsoft может использовать патенты для ограничения использования Open XML. Microsoft предоставила безвозмездную лицензию на патенты, необходимые для реализации стандарта, но некоторые организации (например, Free Software Foundation) выражали сомнения в достаточности этой лицензии.

См. также

  • Office Open XML (спецификация)
  • OpenDocument (ODF)
  • XML
  • Microsoft Office

Источники

  1. ISO/IEC 29500-1:2021 — Information technology — Document description and processing languages — Office Open XML File Formats — Part 1: Fundamentals and Markup Language Reference.
  2. Ecma International. Standard ECMA-376 — Office Open XML File Formats (5th edition, 2021).
  3. Microsoft Corporation. Open XML SDK documentation (2023).
  4. Документация Apache POI — Java API for Microsoft Documents.
  5. Документация python-docx — Python library for creating and updating Microsoft Word (.docx) files.
  6. Обзор форматов файлов Microsoft Office на сайте Microsoft Learn (2024).

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

На главную BFOmetr →