Форматы файлов Office Open XML - Office Open XML file formats

Документ Office Open XML
X-office-document.svg
Расширение имени файла
.docx, .docm
Тип интернет-СМИ
приложение / vnd,
openxmlformats-officedocument,
wordprocessingml,
документ[1]
РазработанMicrosoft, Экма, ISO /IEC
Тип форматаФормат файла документа
Расширен сXML, DOC, WordProcessingML
СтандартECMA-376, ISO / IEC 29500
Интернет сайтECMA-376, ISO / IEC 29500: 2008
Презентация Office Open XML
X-office-presentation.svg
Расширение имени файла
.pptx, .pptm
Тип интернет-СМИ
приложение / vnd,
openxmlformats-officedocument,
презентацияml,
презентация[1]
РазработанMicrosoft, Экма, ISO /IEC
Тип форматаПрезентация
Расширен сXML, PPT
СтандартECMA-376, ISO / IEC 29500
Интернет сайтECMA-376, ISO / IEC 29500: 2008
Книга Office Open XML
X-office-spreadsheet.svg
Расширение имени файла
.xlsx, .xlsm
Тип интернет-СМИ
приложение / vnd,
openxmlformats-officedocument,
spreadsheetml,
лист[1]
РазработанMicrosoft, Экма, ISO /IEC
Тип форматаТаблица
Расширен сXML, XLS, SpreadsheetML
СтандартECMA-376, ISO / IEC 29500
Интернет сайтECMA-376, ISO / IEC 29500: 2008

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

Форматы были разработаны Microsoft и впервые появился в Microsoft Office 2007. Они были стандартизированы в период с декабря 2006 г. по ноябрь 2008 г., сначала Ecma International консорциум, где они стали ECMA-376, а впоследствии, после спорный процесс стандартизации, Совместным техническим комитетом 1 ISO / IEC, где они стали ISO / IEC 29500: 2008.

Контейнер

Структура контейнера части 2 стандарта Ecma Office Open XML, ECMA-376

Документы Office Open XML хранятся в Соглашения об открытой упаковке (OPC) пакеты, которые ZIP файлы содержащий XML и другие файлы данных, вместе со спецификацией отношений между ними.[2] В зависимости от типа документа пакеты имеют разные структуры и имена внутренних каталогов. Приложение будет использовать файлы отношений для поиска отдельных разделов (файлов), каждый из которых имеет сопутствующие метаданные, в частности MIME метаданные.

Базовый пакет содержит файл XML с именем [Content_Types] .xml в корне вместе с тремя каталогами: _rels, docProps, и каталог, соответствующий типу документа (например, в пакете обработки текстов .docx будет слово каталог). В слово каталог содержит document.xml файл, который является основным содержанием документа.

[Content_Types] .xml
Этот файл предоставил информацию о типе MIME для частей пакета, используя значения по умолчанию для определенных расширений файлов и переопределения для частей, указанных в IRI.
_rels
Этот каталог содержит отношения для файлов внутри пакета. Чтобы найти отношения для конкретного файла, ищите _rels каталог, который является родственником файла, а затем для файла, имеющего исходное имя файла с .rels прилагается к нему. Например, если у файла типов содержимого есть какие-либо отношения, будет файл с именем [Content_Types] .xml.rels внутри _rels каталог.
_rels / .rels
В этом файле находятся отношения между пакетами. Приложения смотрите сначала здесь. Просматривая в текстовом редакторе, вы увидите, что он описывает каждую взаимосвязь для этого раздела. В минимальном документе, содержащем только основные document.xml файла, подробные отношения метаданные и document.xml.
docProps / core.xml
Этот файл содержит основные свойства любого документа Office Open XML.
слово / document.xml
Этот файл является основной частью любого документа Word.

Отношения

Пример файла отношений (слово / _rels / document.xml.rels), является:

<?xml version="1.0" encoding="UTF-8" standalone="yes" ?><Отношения xmlns ="http://schemas.microsoft.com/package/2005/06/relationships"> <Отношения Id ="rId1" Тип ="http://schemas.microsoft.com/office/2006/relationships/image" Цель ="http://en.wikipedia.org/images/wiki-en.png" TargetMode ="Внешний" /> <Отношения Id ="rId2" Тип ="http://schemas.microsoft.com/office/2006/relationships/hyperlink" Цель ="http://www.wikipedia.org" TargetMode ="Внешний" /></Relationships>

Таким образом, изображения, на которые есть ссылки в документе, можно найти в файле отношений, выполнив поиск всех отношений, которые имеют тип http://schemas.microsoft.com/office/2006/relationships/image. Чтобы изменить используемое изображение, отредактируйте отношение.

В следующем коде показан пример встроенной разметки для гиперссылка:

 г: id ="rId2" ш: история ="1" xmlns: r ="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns: w ="http://schemas.openxmlformats.org/wordprocessingml/2006/main">

В этом примере Единый указатель ресурсов (URL) находится в атрибуте Target отношения, на которое ссылается идентификатор отношения, в данном случае "rId2". Аналогичным образом ссылаются на связанные изображения, шаблоны и другие элементы.

Изображения могут быть встроены или связаны с помощью тега:

  w: rel ="rId1" o: title ="пример" />

Это ссылка на файл изображения. Все ссылки управляются через отношения. Например, document.xml имеет отношение к изображению. В том же каталоге, что и document.xml, находится каталог _rels, внутри _rels находится файл с именем document.xml.rels. В этом файле будет определение отношения, содержащее тип, идентификатор и местоположение. ID - это ID, на который имеется ссылка, используемый в XML-документе. Тип будет определением ссылочной схемы для типа мультимедиа, а расположение будет внутренним расположением внутри ZIP-пакета или внешним расположением, определенным с помощью URL-адреса.

Свойства документа

Office Open XML использует Дублинское ядро Метаданные Набор элементов и DCMI Условия метаданных для хранения свойств документа. Dublin Core - это стандарт для описания междоменных информационных ресурсов, определенный в ISO 15836: 2003.

Пример файла свойств документа (docProps / core.xml), который использует метаданные Dublin Core, это:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> xmlns: cp ="http://schemas.openxmlformats.org/package/2006/metadata/core-properties" xmlns: dc ="http://purl.org/dc/elements/1.1/" xmlns: dcterms ="http://purl.org/dc/terms/" xmlns: xsi ="http://www.w3.org/2001/XMLSchema-instance"> <dc:title>Office Open XML</dc:title> <dc:subject>Формат и структура файла</dc:subject> <dc:creator>Википедия</dc:creator> <cp:keywords>Office Open XML, метаданные, Dublin Core</cp:keywords> <dc:description>Office Open XML использует ISO 15836: 2003.</dc:description> <cp:lastModifiedBy>Википедия</cp:lastModifiedBy> <cp:revision>1</cp:revision>  xsi: type ="dcterms: W3CDTF">2008-06-19T20: 00: 00Z</dcterms:created>  xsi: type ="dcterms: W3CDTF">2008-06-19T20: 42: 00Z</dcterms:modified> <cp:category>Формат файла документа</cp:category> <cp:contentStatus>Финал</cp:contentStatus></cp:coreProperties>

Языки разметки документов

Файл Office Open XML может содержать несколько документов, закодированных в специализированных языки разметки соответствующие приложениям в линейке продуктов Microsoft Office. Office Open XML определяет несколько словарей, используя 27 пространства имен и 89 схема модули.

Основные языки разметки:

  • WordprocessingML для обработки текста
  • SpreadsheetML для электронных таблиц
  • PresentationML для презентаций

К общим материалам языка разметки относятся:

  • Язык разметки Office Math (OMML)
  • DrawingML, используемый для векторной графики, диаграмм и, например, текстовой графики (дополнительно, хотя и не рекомендуется, VML поддерживается для рисования)
  • Расширенные свойства
  • Настраиваемые свойства
  • Типы вариантов
  • Настраиваемые свойства данных XML
  • Список используемой литературы

В дополнение к указанным выше языкам разметки для расширения Office Open XML можно использовать настраиваемые схемы XML.

Дизайн-подход

Патрик Дурузау, редактор журнала ODF, рассматривает стиль разметки OOXML и ODF как представляющий две стороны дискуссии: «сторону элемента» и «сторону атрибута». Он отмечает, что OOXML представляет «элементную сторону этого подхода» и выделяет KeepNext элемент в качестве примера:

<w:pPr>   <w:keepNext/></w:pPr>

Напротив, он отмечает, что ODF будет использовать единственный атрибут fo: keep-next, а не элемент для той же семантики.[3]

В Схема XML Office Open XML подчеркивает сокращение времени загрузки и улучшение разбор скорость.[4] В тесте с приложениями, выпущенными в апреле 2007 года, офисные документы на основе XML загружались медленнее, чем двоичные форматы.[5] Для повышения производительности Office Open XML использует очень короткие имена элементов для общих элементов, а даты сохранения таблиц в виде номеров индексов (начиная с 1900 или с 1904 года).[6] Чтобы быть систематическим и универсальным, Office Open XML обычно использует отдельные дочерние элементы для данных и метаданных (имена элементов заканчиваются на Pr для свойства) вместо использования нескольких атрибутов, что позволяет структурировать свойства. Office Open XML не использует смешанное содержимое, но использует элементы для размещения серии прогонов текста (имя элемента р) на абзацы (имя элемента п). Результат лаконичный[нужна цитата ] и сильно вложен в отличие от HTML, например, довольно плоский, разработанный для того, чтобы люди могли писать текстовые редакторы и более удобна для чтения людьми.

Именование элементов и атрибутов в тексте вызвало некоторую критику. В OOXML (ECMA-376) существует три различных синтаксиса для указания цвета и выравнивания текста в зависимости от того, является ли документ текстом, электронной таблицей или презентацией. Роб Вейр ( IBM сотрудник и сопредседатель ОАЗИС Формат OpenDocument ТС) спрашивает «Какое инженерное оправдание этого ужаса?». Он контрастирует с OpenDocument: «ODF использует словарь W3C XSL-FO для стилизации текста и использует этот словарь последовательно».[7]

Некоторые утверждали, что дизайн слишком близко основан на приложениях Microsoft. В августе 2007 г. Linux Foundation опубликовал сообщение в блоге с призывом к национальным органам ISO проголосовать «Нет, с комментариями» во время Международной стандартизации OOXML. В нем говорилось: «OOXML является прямым портом форматов двоичных документов одного поставщика. Он позволяет избежать повторного использования соответствующих существующих международных стандартов (например, нескольких криптографических алгоритмов, VML и т. Д.). Существуют буквально сотни технических недостатков, которые должны быть устранены. устранены до стандартизации OOXML, включая дальнейшее использование двоичного кода, привязанного к конкретным функциям платформы, распространение ошибок в MS-Office в стандартные, проприетарные единицы, ссылки на проприетарные / конфиденциальные теги, неясные IP и патентные права и многое другое ".[8]

Версия стандарта, представленная JTC 1 было 6546 страниц. Необходимость и целесообразность такой длины подвергались сомнению.[9][10] Google заявил, что «стандарт ODF, который достигает той же цели, составляет всего 867 страниц»[9]

WordprocessingML (WML)

В документах обработки текстов используется словарь XML, известный как WordprocessingML, нормативно определенный схемой. wml.xsd который сопровождает стандарт. Этот словарь определен в разделе 11 Части 1.[11]

SpreadsheetML (SML)

В электронных таблицах используется словарь XML, известный как SpreadsheetML, нормативно определенный схемой. sml.xsd который сопровождает стандарт. Этот словарь описан в разделе 12 Части 1.[11]

Каждый рабочий лист в электронной таблице представлен XML-документом с корневым элементом с именем <worksheet>...</worksheet> в http://schemas.openxmlformats.org/spreadsheetml/2006/main Пространство имен.

Представление значений даты и времени в SpreadsheetML вызвало некоторую критику. ECMA-376 1-е издание не соответствует стандарту ISO 8601: 2004 «Отображение даты и времени». Это требует, чтобы реализации воспроизводили Лотос 1-2-3 [12] ошибка, которая ошибочно рассматривает 1900 как високосный год. Продукты, соответствующие стандарту ECMA-376, должны будут использовать функцию электронной таблицы WEEKDAY () и, следовательно, назначать неправильные даты для некоторых дней недели, а также неправильно рассчитывать количество дней между определенными датами.[13] ECMA-376 2-е издание (ISO / IEC 29500) позволяет использовать 8601: 2004 «Представление дат и времени» в дополнение к форме Lotus 1-2-3, совместимой с ошибками.[14][15]

Office MathML (OMML)

Язык разметки Office Math - это язык математической разметки, который может быть встроен в WordprocessingML, с внутренней поддержкой для включения разметки текстовых редакторов, например, пометок редакций,[16] сноски, комментарии, изображения и сложное форматирование и стили.[17]Формат OMML отличается от формата Консорциум World Wide Web (W3C) MathML рекомендация, которая не поддерживает эти офисные функции, но частично совместима[18] через Преобразования XSL; инструменты поставляются с офисным пакетом и автоматически используются через преобразования буфера обмена.[19]

В следующем примере Office MathML определяется дробная часть:

<m:oMathPara><!-- mathematical block container used as a paragraph -->  <m:oMath><!-- mathematical inline formula -->    <m:f><!-- a fraction -->      <m:num><m:r><m:t>π</m:t></m:r></m:num><!-- numerator containing a single run of text -->      <m:den><m:r><m:t>2</m:t></m:r></m:den><!-- denominator containing a single run of text -->    </m:f>  </m:oMath></m:oMathPara>

Некоторые спрашивают о необходимости Office MathML (OMML) вместо этого, защищая использование MathML, а W3C рекомендация по «включению математических выражений в веб-страницы» и «межмашинной связи».[20] Мюррей Сарджент ответил на некоторые из этих вопросов в блоге, в котором подробно описаны некоторые философские различия между двумя форматами.[21]

DrawingML

Пример диаграмм DrawingML

DrawingML - это язык разметки векторной графики используется в документах Office Open XML. Его основными функциями являются графическая визуализация текстовых элементов, графических векторных элементов фигур, графических таблиц и диаграмм.

Таблица DrawingML является третьей табличной моделью в Office Open XML (после моделей таблиц в WordprocessingML и SpreadsheetML) и оптимизирована для графических эффектов, и ее основное применение - в презентациях, созданных с помощью разметки PresentationML. GrawingML содержит графические эффекты (например, тени и отражение) ), которые можно использовать в различных графических элементах, используемых в DrawingML. В DrawingML вы также можете создавать трехмерные эффекты, например, для отображения различных графических элементов через гибкую точку обзора камеры. Можно создавать отдельные части темы DrawingML в Пакет Office Open XML. Затем эти темы можно применять к графическим элементам во всем пакете Office Open XML.[22]

DrawingML не связан с другими векторная графика форматы, такие как SVG. Их можно преобразовать в DrawingML для включения в документ Office Open XML. Это отличный от подхода OpenDocument формат, который использует подмножество SVG и включает векторную графику в виде отдельных файлов.

Размеры графики DrawingML указаны в английских метрических единицах (EMU). Он назван так потому, что позволяет получить точное общее представление размеров первоначально в английских или метрических единицах, определяемых как 1/360 000 единиц измерения. сантиметр, и, таким образом, на каждый дюйм, и 12700 EMU на точка, чтобы предотвратить округление в расчетах. Рик Джеллифф отдает предпочтение электромобилям как рациональному решению определенного набора критериев проектирования.[23]

Некоторые критиковали использование DrawingML (и временного использования VML ) вместо того W3C рекомендация SVG.[24] VML не стал рекомендацией W3C.[25]

Зарубежные ресурсы

Не-XML контент

Документы OOXML обычно состоят из других ресурсов в дополнение к содержимому XML (графика, видео и т. Д.).

Некоторые критиковали выбор разрешенного формата для таких ресурсов: 1-е издание ECMA-376 определяет «Типы запросов на альтернативные изображения для встроенных объектов» и «Типы форматов буфера обмена», которые относятся к Метафайлы Windows или Расширенные метафайлы - каждый из которых является проприетарным форматом, который жестко зависит от Windows сам. Критики заявляют, что вместо этого в стандарте должна быть ссылка на стандарт, нейтральный для платформы, ISO / IEC 8632 "Метафайл компьютерной графики ".[13]

Внешняя разметка

Стандарт предоставляет три механизма, позволяющих встраивать внешнюю разметку в контент для редактирования:

  • Смарт-теги
  • Пользовательская разметка XML
  • Структурированные теги документов

Они определены в пункте 17.5 Части 1.

Настройки совместимости

Версии Office Open XML содержат так называемые «параметры совместимости». Они содержатся в Части 4 («Справочник по языку разметки») ECMA-376 1st Edition, но во время стандартизации были перенесены в новую часть (также называемую Частью 4) ISO / IEC 29500: 2008 («Переходные функции миграции») .

Эти настройки (включая элемент с такими именами, как autoSpaceLikeWord95, footnoteLayoutLikeWW8, lineWrapLikeWord6, mwSmallCaps, shapeLayoutLikeWW8, suppressTopSpacingWP, truncateFontHeightsLikeWP6, uiCompat97To2003, useWord2002TableStyleRules, useWord97LineBreakRules, wpJustification и wpSpaceWidth) были предметом споров во время стандартизации DIS 29500.[26] В результате в ISO / IEC 29500 был добавлен новый текст для их документирования.[27]

Статья в Журнал свободного программного обеспечения подверг критике разметку, используемую для этих настроек. Office Open XML использует четко названные элементы для каждого параметра совместимости, каждый из которых объявлен в схеме. Таким образом, набор настроек ограничен - для добавления новых настроек совместимости может потребоваться объявить новые элементы, «потенциально создавая тысячи из них, каждый из которых не имеет ничего общего с взаимодействием».[28]

Расширяемость

Стандарт предоставляет два типа механизма расширяемости: совместимость и расширяемость разметки (MCE), определенные в части 3 (ISO / IEC 29500-3: 2008), и списки расширений, определенные в пункте 18.2.10 части 1.

использованная литература

  1. ^ а б c Microsoft. «Зарегистрируйте расширения файлов на сторонних серверах». microsoft.com. Получено 2009-09-04.
  2. ^ Том Нго (11 декабря 2006 г.). «Обзор Office Open XML» (PDF). Ecma International. п. 6. Получено 2007-01-23.
  3. ^ Патрик Дурузау (21 октября 2008 г.). "Старое вино в новых мехах" (PDF).
  4. ^ Intellisafe Technologies. «Разработчик программного обеспечения использует Office Open XML для минимизации файлового пространства и повышения совместимости» (PDF).
  5. ^ Джордж Оу (2007-04-27). «MS Office 2007 против Open Office 2.2». ZDnet.com. Получено 2007-04-27.
  6. ^ «Различия между системой дат 1900 и 1904 годов в Excel». Microsoft. 2013-03-05. Получено 2016-08-23.
  7. ^ Роб Вейр (14 марта 2008 г.). «Дисгармония OOXML».
  8. ^ Джон Черри (14 марта 2008 г.). «OOXML - голосование» Нет, с комментариями"".
  9. ^ а б «Позиция Google в отношении OOXML как предлагаемого стандарта ISO» (PDF). Google. Февраль 2008. Архивировано с оригинал (PDF) на 18.08.2010. Если бы ISO предоставил OOXML с его 6546 страницами тот же уровень проверки, что и другие стандарты, потребовалось бы 18 лет (6576 дней для 6546 страниц), чтобы достичь сопоставимых уровней проверки с существующим стандартом ODF (871 день для 867 страниц). ), который достигает той же цели и поэтому является хорошим сравнением. Учитывая, что OOXML получил только около 5,5% проверок, которые прошли сопоставимые стандарты, сообщения о несоответствиях, противоречиях и недостающей информации не вызывают удивления.
  10. ^ "OOXML: Что в этом такого?". IBM. 19 февраля 2008 г. Архивировано из оригинал на 2009-10-03.
  11. ^ а б «ИСО / МЭК 29500-1: 2016». ISO и IEC. 2016-11-01.
  12. ^ Кид, Чарли (октябрь 2006 г.). «Как работать с датами до 1900 года в Excel». ExcelUser. Получено 2009-09-16.
  13. ^ а б «Противоречивая природа OOXML». ConsortiumInfo.org.
  14. ^ "ECMA-376 2-е издание Часть 1 (3. Нормативные ссылки)". Ecma-international.org. Получено 2009-09-16.
  15. ^ «Опубликован новый набор предлагаемых диспозиций, в том числе более позитивные изменения в форматах Ecma Office Open XML - диспозиции теперь предлагаются для более чем половины комментариев национальных органов». Ecma-international.org. 2007-12-11. Получено 2009-09-16.
  16. ^ Джеспер Лунд Стохольм (12 февраля 2008 г.). «Подсчитайте - OOXML и OMML (обновлено 12 февраля 2008 г.)». Блог Mooh Point. Получено 2015-11-18.
  17. ^ Мюррей Сарджент (05.06.2007). «Наука и природа испытывают трудности с математикой Word 2007». Блоги MSDN. Получено 2007-07-31.
  18. ^ Дэвид Карлайл (2007-05-09). «XHTML и MathML из Office 2007». Дэвид Карлайл. Получено 2007-09-20.
  19. ^ http://blogs.msdn.com/b/murrays/archive/2007/06/05/science-and-nature-have-difficulty-with-word-2007-mat Mathematics.aspx
  20. ^ «Наука и природа выбросили Microsoft Office». ZDNet Australia. 18 июня 2007 г.
  21. ^ http://blogs.msdn.com/b/murrays/archive/2006/10/07/mathml-and-ecma-math-_2800_omml_2900_-.aspx
  22. ^ Воутер Ван Вугт (1 ноября 2008 г.). "Электронная книга с объяснениями Open XML". Openxmldeveloper.org. Архивировано из оригинал на 2007-10-28. Получено 2007-09-14.
  23. ^ Рик Джеллифф в Technical (16 апреля 2007 г.). "Почему электромобили? - XML-блог O'Reilly". Oreillynet.com. Получено 2009-05-19.
  24. ^ "Икс-Фактор". reddevnews.com. Октябрь 2007 г.
  25. ^ «VML - язык векторной разметки». W3.org. 1998-05-13. Получено 2009-05-19.
  26. ^ «Технический документ ODF / OOXML - Технический документ, основанный на техническом сравнении форматов ODF и OOXML». Журнал свободного программного обеспечения.
  27. ^ «ECMA-376 2-е издание, часть 4 (параграф 9.7.3)». Ecma-international.org. Получено 2009-09-16.
  28. ^ «Технический документ ODF / OOXML - Технический документ, основанный на техническом сравнении форматов ODF и OOXML». Журнал свободного программного обеспечения. "... OOXML выбрал этот путь. Вместо того, чтобы создавать определяемый приложением тег конфигурации, для каждого параметра существует уникальный тег ... В настоящее время единственными уникальными параметрами приложения, которые обслуживаются, являются приложения, которые авторы стандарта решили использовать include, ... Для добавления других приложений в спецификации должны быть определены дополнительные имена тегов, потенциально создавая тысячи из них, каждый из которых не имеет ничего общего с взаимодействием ... ".