Форматы файлов Office Open XML
Офисный открытый XML |
---|
Расширение имени файла | .docx, .docm |
---|---|
Тип интернет-СМИ | |
Разработано | Microsoft , Ecma , ISO / IEC |
Первоначальный выпуск | 2006 год |
Тип формата | Формат файла документа |
Расширено с | XML , DOC , WordProcessingML |
Стандартный | ECMA-376, ИСО/МЭК 29500 |
Веб-сайт | ECMA-376 , ИСО/МЭК 29500:2008. |
Расширение имени файла | .pptx, .pptm |
---|---|
Тип интернет-СМИ | |
Разработано | Microsoft , Ecma , ISO / IEC |
Тип формата | Презентация |
Расширено с | XML , ППТ |
Стандартный | ECMA-376, ИСО/МЭК 29500 |
Веб-сайт | ECMA-376 , ИСО/МЭК 29500:2008. |
Расширение имени файла | .xlsx, .xlsm |
---|---|
Тип интернет-СМИ | |
Разработано | Microsoft , Ecma , ISO / IEC |
Тип формата | электронная таблица |
Расширено с | XML , XLS , электронная таблицаML |
Стандартный | ECMA-376, ИСО/МЭК 29500 |
Веб-сайт | ECMA-376 , ИСО/МЭК 29500:2008. |
Форматы файлов Office Open XML — это набор форматов файлов , которые можно использовать для представления электронных офисных документов. Существуют форматы для текстовых документов, электронных таблиц и презентаций, а также специальные форматы для таких материалов, как математические формулы, графики, библиографии и т. д.
Форматы были разработаны Microsoft и впервые появились в Microsoft Office 2007 . Они были стандартизированы в период с декабря 2006 по ноябрь 2008 года, сначала консорциумом Ecma International , где они стали ECMA-376, а затем, после спорного процесса стандартизации , Объединенным техническим комитетом ISO/IEC 1, где они стали ISO/IEC 29500. :2008.
Контейнер
[ редактировать ]Документы Office Open XML хранятся в Open Packaging Conventions пакетах (OPC), которые представляют собой ZIP-файлы, содержащие XML и другие файлы данных, а также спецификацию связей между ними. [2] В зависимости от типа документа пакеты имеют разные внутренние структуры каталогов и имена. Приложение будет использовать файлы связей для поиска отдельных разделов (файлов), каждый из которых имеет сопутствующие метаданные, в частности MIME метаданные .
Базовый пакет содержит XML-файл с именем [Content_Types].xml в корне, а также три каталога: _rels , docProps и каталог, специфичный для типа документа (например, в пакете обработки текста .docx будет каталог слов ). Каталог word содержит файл document.xml , который является основным содержимым документа.
- [Типы_контента].xml
- Этот файл предоставил информацию о типе MIME для частей пакета, используя значения по умолчанию для определенных расширений файлов и переопределения для частей, указанных IRI .
- _rels
- Этот каталог содержит связи для файлов внутри пакета. Чтобы найти связи для определенного файла, найдите каталог _rels , который является родственным по отношению к файлу, а затем файл, который имеет исходное имя файла с добавленным к нему расширением .rels . будет файл с именем [Content_Types].xml.rels Например, если файл типов контента имеет какие-либо связи, в каталоге _rels .
- _rels/.rels
- В этом файле находятся отношения пакетов. Заявки смотрите здесь в первую очередь. Просматривая в текстовом редакторе, вы увидите, что в нем очерчены все отношения для этого раздела. В минимальном документе, содержащем только базовый файл document.xml , детализированными связями являются метаданные и document.xml .
- docProps/core.xml
- Этот файл содержит основные свойства любого документа Office Open XML.
- слово/документ.xml
- Этот файл является основной частью любого документа Word.
Отношения
[ редактировать ]Пример файла отношений ( word/_rels/document.xml.rels ):
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?><Relationships xmlns="http://schemas.microsoft.com/package/2005/06/relationships"> <Relationship Id="rId1" Type="http://schemas.microsoft.com/office/2006/relationships/image" Target="http://en.wikipedia.org/images/wiki-en.png" TargetMode="External" /> <Relationship Id="rId2" Type="http://schemas.microsoft.com/office/2006/relationships/hyperlink" Target="http://www.wikipedia.org" TargetMode="External" /></Relationships>
Таким образом, изображения, на которые есть ссылки в документе, можно найти в файле отношений, выполнив поиск всех отношений типа http://schemas.microsoft.com/office/2006/relationships/image
. Чтобы изменить используемое изображение, отредактируйте взаимосвязь.
В следующем коде показан пример встроенной разметки для гиперссылки :
<w:hyperlink r:id="rId2" w:history="1" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main">
В этом примере унифицированный указатель ресурса (URL) находится в атрибуте Target связи, на которую ссылается идентификатор связи, в данном случае «rId2». Ссылки на связанные изображения, шаблоны и другие элементы используются таким же образом.
Изображения можно вставлять или связывать с помощью тега:
<v:imagedata w:rel="rId1" o:title="example" />
Это ссылка на файл изображения. Все ссылки управляются через отношения. Например, document.xml имеет отношение к изображению. В том же каталоге, что и document.xml, находится каталог _rels, внутри _rels находится файл с именем document.xml.rels. В этом файле будет определение связи, содержащее тип, идентификатор и местоположение. Идентификатор — это идентификатор, на который ссылаются, используемый в XML-документе. Тип будет определением ссылочной схемы для типа носителя, а расположением будет внутреннее расположение внутри ZIP-пакета или внешнее расположение, определенное с помощью URL-адреса.
Свойства документа
[ редактировать ]Office Open XML использует Dublin Core набор элементов метаданных и термины метаданных DCMI для хранения свойств документа. Dublin Core — это стандарт описания междоменных информационных ресурсов, определенный в ISO 15836:2003 .
Пример файла свойств документа ( docProps/core.xml ), в котором используются метаданные Dublin Core:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?><cp:coreProperties 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>File format and structure</dc:subject> <dc:creator>Wikipedia</dc:creator> <cp:keywords>Office Open XML, Metadata, Dublin Core</cp:keywords> <dc:description>Office Open XML uses ISO 15836:2003</dc:description> <cp:lastModifiedBy>Wikipedia</cp:lastModifiedBy> <cp:revision>1</cp:revision> <dcterms:created xsi:type="dcterms:W3CDTF">2008-06-19T20:00:00Z</dcterms:created> <dcterms:modified xsi:type="dcterms:W3CDTF">2008-06-19T20:42:00Z</dcterms:modified> <cp:category>Document file format</cp:category> <cp:contentStatus>Final</cp:contentStatus></cp:coreProperties>
Языки разметки документов
[ редактировать ]Файл Office Open XML может содержать несколько документов, закодированных на специализированных языках разметки, соответствующих приложениям линейки продуктов Microsoft Office. Office Open XML определяет несколько словарей, используя 27 пространств имен и 89 схемы модулей .
Основные языки разметки:
- WordprocessingML для обработки текста
- SpreadsheetML для электронных таблиц
- PresentationML для презентаций
К общим материалам на языке разметки относятся:
- Язык математической разметки Office (OMML)
- DrawingML используется для векторного рисования, диаграмм и, например, текстовых изображений (кроме того, VML , хотя и не рекомендуется). для рисования поддерживается
- Расширенные свойства
- Пользовательские свойства
- Типы вариантов
- Пользовательские свойства данных XML
- Библиография
В дополнение к указанным выше языкам разметки можно использовать собственные схемы XML для расширения Office Open 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 не использует смешанное содержимое, а использует элементы для объединения серии текстов (имя элемента r ) в абзацы (имя элемента p ). Результат краткий [ нужна ссылка ] и сильно вложен, в отличие от HTML , например, , который довольно плоский, предназначен для того, чтобы люди могли писать в текстовых редакторах , и более удобен для чтения.
Именование элементов и атрибутов в тексте вызвало некоторую критику. В OOXML (ECMA-376) существует три различных синтаксиса для указания цвета и выравнивания текста в зависимости от того, является ли документ текстом, электронной таблицей или презентацией. Роб Вейр ( сотрудник IBM и сопредседатель OASIS OpenDocument Format TC) спрашивает: «Каково инженерное обоснование этого ужаса?». Он противопоставляет OpenDocument : «ODF использует словарь XSL-FO W3C для стилизации текста и использует этот словарь последовательно». [7]
Некоторые утверждают, что этот дизайн слишком тесно связан с приложениями Microsoft.В августе 2007 года Linux Foundation опубликовал сообщение в блоге, призывающее национальные органы ISO проголосовать «против, с комментариями» во время международной стандартизации OOXML. В нем говорилось: «OOXML — это прямой порт форматов двоичных документов одного поставщика. Он позволяет избежать повторного использования соответствующих существующих международных стандартов (например, нескольких криптографических алгоритмов, VML и т. д.). Существуют буквально сотни технических недостатков, которые следует устранить. рассмотрены до стандартизации OOXML, включая дальнейшее использование двоичного кода, привязанного к конкретным функциям платформы, распространение ошибок в MS-Office в стандартные, проприетарные модули, ссылки на проприетарные/конфиденциальные теги, неясные права интеллектуальной собственности и патентные права и многое другое». [8]
Версия стандарта, представленная в JTC 1, имела объем 6546 страниц. Необходимость и целесообразность такой длины подвергались сомнению. [9] [10] Google заявил, что «стандарт ODF, преследующий ту же цель, состоит всего из 867 страниц». [9]
WordprocessingML (WML)
[ редактировать ]В документах обработки текста используется словарь XML, известный как WordprocessingML, нормативно определенный схемой. wml.xsd
который сопровождает стандарт. Этот словарь определен в пункте 11 части 1. [11]
Электронная таблицаML (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 «Представление даты и времени». Это требует, чтобы реализации копировали Lotus 1-2-3. [12] ошибка, которая ошибочно считает 1900 год високосным. Продукты, соответствующие ECMA-376, должны будут использовать функцию электронной таблицы WEEKDAY() и, следовательно, назначать неверные даты некоторым дням недели, а также неправильно рассчитывать количество дней между определенными датами. [13] Второе издание ECMA-376 (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]
РисованиеML
[ редактировать ]DrawingML — это язык разметки векторной графики, используемый в документах Office Open XML. Его основными функциями являются графическое отображение текстовых элементов, графических векторных элементов фигур, графических таблиц и диаграмм.
Таблица DrawingML — это третья модель таблицы в Office Open XML (после моделей таблиц в WordprocessingML и SpreadsheetML), она оптимизирована для графических эффектов и в основном используется в презентациях, созданных с помощью разметки PresentationML.DrawingML содержит графические эффекты (например, тени и отражение), которые можно использовать с различными графическими элементами, используемыми в DrawingML.В DrawingML вы также можете создавать 3D-эффекты, например, чтобы показывать различные графические элементы с помощью гибкой точки зрения камеры.В пакете Office Open XML можно создавать отдельные части темы DrawingML. Эти темы затем можно применять к графическим элементам в пакете Office Open XML. [22]
DrawingML не связан с другими форматами векторной графики, такими как SVG . Их можно преобразовать в DrawingML для включения в документ Office Open XML. Это другой подход по сравнению с форматом OpenDocument , который использует подмножество SVG и включает векторную графику в виде отдельных файлов.
Размеры графики DrawingML указаны в английских метрических единицах (EMU). Он назван так потому, что обеспечивает точное общее представление размеров, первоначально выраженных в английских или метрических единицах измерения, определяемых как 1/360 000 сантиметра , приходится 914 400 EMU и, таким образом, на дюйм , а на точку — 12 700 EMU , чтобы избежать округления. в расчетах. Рик Джеллифф отдает предпочтение электропоездам как рациональному решению определенного набора критериев проектирования. [23]
Некоторые критиковали использование DrawingML (и VML, предназначенного только для переходного периода ) вместо W3C рекомендованного SVG . [24] VML не стал рекомендацией W3C. [25]
Зарубежные ресурсы
[ редактировать ]Не-XML-контент
[ редактировать ]Документы OOXML обычно состоят из других ресурсов помимо содержимого XML (графика, видео и т. д.).
Некоторые критиковали выбор разрешенного формата для таких ресурсов: первое издание ECMA-376 определяет «Типы запросов альтернативных изображений встроенных объектов» и «Типы форматов буфера обмена», которые относятся к метафайлам Windows или расширенным метафайлам , каждый из которых является собственным форматом, имеющим жестко запрограммированные зависимости от самой Windows . Критики утверждают, что вместо этого стандарт должен был ссылаться на нейтральный к платформе стандарт ISO/IEC 8632 « Метафайл компьютерной графики ». [13]
Иностранная наценка
[ редактировать ]Стандарт предоставляет три механизма, позволяющих встраивать внешнюю разметку в контент для целей редактирования:
- Смарт-теги
- Пользовательская XML-разметка
- Теги структурированных документов
Они определены в пункте 17.5 части 1.
Настройки совместимости
[ редактировать ]Версии Office Open XML содержат так называемые «параметры совместимости». Они содержатся в Части 4 («Справочник по языку разметки») ECMA-376 1-го издания, но во время стандартизации были перенесены в новую часть (также называемую Частью 4) ISO/IEC 29500:2008 («Особенности переходной миграции»). .
Эти настройки (включая элементы с такими именами, как autoSpaceLikeWord95 , footnoteLayoutLikeWW8 , lineWrapLikeWord6 , mwSmallCaps , shapeLayoutLikeWW8 , SupressTopSpacingWP , truncateFontHeightsLikeWP6 , uiCompat97To2003 , useWord2002TableStyleRules , useWord97LineB reakRules , wpJustification и wpSpaceWidth ) были в центре некоторых разногласий во время стандартизации DIS 29500. [26] В результате в ISO/IEC 29500 был добавлен новый текст для их документирования. [27]
Статья в журнале Free Software Magazine подвергла критике разметку, используемую для этих настроек. Office Open XML использует элементы с отдельными именами для каждого параметра совместимости, каждый из которых объявлен в схеме. Таким образом, репертуар настроек ограничен — для добавления новых настроек совместимости может потребоваться объявить новые элементы, «потенциально создав тысячи из них, каждый из которых не имеет ничего общего с совместимостью». [28]
Расширяемость
[ редактировать ]Стандарт предоставляет два типа механизма расширения: совместимость и расширяемость разметки (MCE), определенные в части 3 (ISO/IEC 29500-3:2008), и списки расширений, определенные в пункте 18.2.10 части 1.
Ссылки
[ редактировать ]- ^ Перейти обратно: а б с Майкрософт. «Регистрация расширений файлов на сторонних серверах» . microsoft.com . Проверено 4 сентября 2009 г.
- ^ Том Нго (11 декабря 2006 г.). «Обзор Office Open XML» (PDF) . Экма Интернешнл. п. 6 . Проверено 23 января 2007 г.
- ^ Патрик Дурусау (21 октября 2008 г.). «Старое вино в новых мехах» (PDF) .
- ^ Интеллисейф Технологии. «Разработчик программного обеспечения использует Office Open XML для минимизации файлового пространства и повышения совместимости» (PDF) .
- ^ Джордж Оу (27 апреля 2007 г.). «Перестрелка MS Office 2007 и Open Office 2.2» . ZDnet.com. Архивировано из оригинала 26 марта 2009 г. Проверено 27 апреля 2007 г.
- ^ «Различия между системами дат 1900 и 1904 годов в Excel» . Майкрософт. 05.03.2013 . Проверено 23 августа 2016 г.
- ^ Роб Вейр (14 марта 2008 г.). «Дисгармония OOXML» .
- ^ Джон Черри (14 марта 2008 г.). «OOXML — голосуем «Нет, с комментариями» » .
- ^ Перейти обратно: а б «Позиция Google в отношении OOXML как предлагаемого стандарта ISO» (PDF) . Google . Февраль 2008 г. Архивировано из оригинала (PDF) 18 августа 2010 г.
Если бы ISO предоставила OOXML с его 6546 страницами тот же уровень проверки, что и другие стандарты, потребовалось бы 18 лет (6576 дней для 6546 страниц), чтобы достичь уровней проверки, сопоставимых с существующим стандартом ODF (871 день для 867 страниц). ), который достигает той же цели и, таким образом, является хорошим сравнением. Учитывая, что OOXML получил лишь около 5,5% проверок по сравнению с аналогичными стандартами, сообщения о несоответствиях, противоречиях и недостающей информации вряд ли удивительны.
- ^ «OOXML: Что такого важного?» . ИБМ . 19 февраля 2008 г. Архивировано из оригинала 3 октября 2009 г.
- ^ Перейти обратно: а б «ИСО/МЭК 29500-1:2016» . ИСО и МЭК. 01.11.2016.
- ^ Кид, Чарли (октябрь 2006 г.). «Как работать с датами до 1900 года в Excel» . Пользователь Excel . Проверено 16 сентября 2009 г.
- ^ Перейти обратно: а б «Противоречивая природа OOXML» . ConsortiumInfo.org. 17 января 2007 г.
- ^ «ECMA-376 2-е издание Часть 1 (3. Нормативные ссылки)» . Ecma-international.org . Проверено 16 сентября 2009 г.
- ^ «Опубликован новый набор предлагаемых положений, включая более позитивные изменения в форматах Open XML Office Ecma – теперь положения предлагаются для более половины комментариев национальных органов» . Ecma-international.org. 11 декабря 2007 г. Проверено 16 сентября 2009 г.
- ^ Йеспер Лунд Стохольм (12 февраля 2008 г.). «Занимайтесь математикой — OOXML и OMML (обновлено 12 февраля 2008 г.)» . Блог Mooh Point. Архивировано из оригинала 26 марта 2016 г. Проверено 18 ноября 2015 г.
- ^ Мюррей Сарджент (5 июня 2007 г.). «Наука и природа испытывают трудности с математикой в Word 2007» . Блоги MSDN . Проверено 31 июля 2007 г.
- ^ Дэвид Карлайл (9 мая 2007 г.). «XHTML и MathML из Office 2007» . Дэвид Карлайл . Проверено 20 сентября 2007 г.
- ^ «Девблоги» .
- ^ «Microsoft Office выброшен наукой и природой» . ZDNet Австралия. 18 июня 2007 г.
- ^ «Девблоги» .
- ^ Воутер Ван Вугт (1 ноября 2008 г.). «Электронная книга с объяснением Open XML» . Openxmldeveloper.org. Архивировано из оригинала 28 октября 2007 г. Проверено 14 сентября 2007 г.
- ^ Джеллифф, Рик. «Почему электропоезда?» . XML-блог О'Рейли . О'Рейли. Архивировано из оригинала 29 декабря 2014 г. Проверено 19 мая 2009 г.
- ^ «Х-Фактор» . reddevnews.com. Октябрь 2007 года.
- ^ «VML — язык векторной разметки» . W3.org. 13 мая 1998 г. Проверено 19 мая 2009 г.
- ^ «Технический документ ODF/OOXML — официальный документ, основанный на техническом сравнении форматов ODF и OOXML» . Журнал свободного программного обеспечения.
- ^ «ECMA-376 2-е издание Часть 4 (п. 9.7.3)» . Ecma-international.org . Проверено 16 сентября 2009 г.
- ^ «Технический документ ODF/OOXML — официальный документ, основанный на техническом сравнении форматов ODF и OOXML» . Журнал свободного программного обеспечения.
«... OOXML выбрал этот путь. Вместо создания определяемого приложением тега конфигурации существует уникальный тег для каждого параметра... В настоящее время единственными уникальными настройками приложения, которые учитываются, являются приложения, которые авторы стандарта решили использовать. include, ... Для добавления других приложений в спецификации необходимо будет определить дополнительные имена тегов, что потенциально приведет к созданию тысяч таких тегов, каждый из которых не имеет ничего общего с совместимостью ..".