Office Open XML
Office Open XML (ще часто називається OOXML) — міжнародний стандарт формату файлів для електронних документів, як-от електронні таблиці, діаграми, презентації та текстові документи, що базується на XML.[1]
Компанія «Microsoft» початково розробила специфікацію формату як наступника бінарних форматів «Microsoft Office». Пізніше специфікація була передана до «Ecma International» для розробки стандарту Ecma-376, під керівництвом «Ecma International Technical Committee» TC45. Стандарт «Ecma 376» опублікований в грудні 2006 і він може бути вільно завантажений з сайту Ecma international. Після цього формат Office Open XML було передано до Міжнародної організації зі стандартизації (ISO) для стандартизації. 1 квітня 2008 року компанія «Microsoft» оголосила про схвалення стандарту в ISO[2]
Стандартизація
Міжнародна організація зі стандартизації (ISO) і Міжнародна електротехнічна комісія (IEC) у квітні 2008 року винесли ухвалу про ухвалення формату офісних документів Office Open XML (OOXML) як міжнародний стандарт. Відповідно до опублікованих документів, 86 % членів ISO і IEC, що взяли участь в голосуванні, підтримали даний формат, тоді як для ухвалення формату, відповідно до директив ISO/IEC, за нього повинні були віддати голоси 75 % членів організацій. Таким чином, Office Open XML приєднався до таких відомих форматів, як HTML, PDF і ODF, які також були затверджені ISO/IEC.
Office Open XML розроблений «Microsoft» для зберігання електронних документів в пакетах офісних застосувань і, зокрема, в «Microsoft Office». Файл цього формату є ZIP-архівом, що містить текст у вигляді XML, графіку та інші дані. Заявку на стандартизацію формату через організацію «Ecma» внесено у листопаді 2005 р. Новий формат мав називатися «Ecma Office Open XML». Процес отримав підтримку з боку багатьох компаній, проте на первинному голосуванні у вересні 2007 р. OOXML набрав 53 % голосів «за» і 26 % голосів «проти» і не був затверджений як стандарт.
Власний стандарт «Microsoft» у його сертифікованому ISO вигляді офісним пакетом «Microsoft Office 2007» у повному обсязі не підтримується; компанія планувала, що його підтримка не буде реалізована до виходу Office 14, запланованого на 2009–2010 рр., проте Office 2010 може лише читати OOXML у сертифікованому форматі (ISO/IEC 29500 Strict), але не зберігати (зберігає він все одно «перехідний» варіант формату)[3]. Office 2013 вже має можливість зберігання у сертифікований формат, проте «з коробки» все одно зберігає перехідний формат[4].
Незабаром після стандартизації національні організації Бразилії, ПАР, Індії та Венесуели подали формальні апеляції[5] з претензіями про недотримання необхідних процедур у процесі обговорення, яке не дозволило задовільно обговорити і усунути зауваження національних комітетів до проекту стандарту, відсутність консенсусу в ході погоджувальної зустрічі, а також той факт, що порушено регламент, що приписує публікацію тексту стандарту протягом місяця після закінчення обговорення (текст стандарту не був опублікований). У серпні 2008 апеляцію було відхилено технічним комітетом ISO, але це не вберегло керівництво ISO від звинувачень в упередженій прихильності до софтової монополії.
Формат файлу та структура
В ранній формі цих форматів, перед стандартизацією ECMA, «Microsoft Office 2003 XML» використовували єдиний монолітний файл з вбудованими елементами такими як зображення як закодовані блоки всередині XML. Office Open XML більш цього не підтримує, але використовує стиснення файлів відповідно до «Open Packaging Convention». Цей формат використовую формат файлу ZIP та містить окремі файли що формують базис документу. Крім розмітки документу використовуваної офісом, пакет також включає вбудовані (двійкові) файли у таких форматах як PNG, BMP, AVI чи PDF.
У рамках ініціативи «.NET Foundation» з переходу до відкритих методів розробки платформи .NET, у червні 2014 компанія «Microsoft» відкрила[6] під ліцензією «Apache» сирцевий код Open XML SDK, що надає засоби для створення і обробки документів у форматі Open XML (DOCX, XLSX і PPTX). Зокрема, Open XML SDK дозволяє генерувати документи, отримувати інформацію з існуючих документів (у тому числі для перетворення в HTML) і модифікувати існуючі документи. Також в Open XML SDK присутній код перевірки якості, який може бути використаний в системі автоматизованого тестування для перевірки якості підтримки OOXML. Сирцевий код SDK написаний мовою C#.
Мови розмітки документів
Office Open XML файл може містити декілька документів закодованих спеціалізованими мовами розмітки відповідно до програм у лінійці Microsoft Office.
Office Open XML визначає багато словників (використовуючи 27 просторів імен (namespaces) та 89 схема-модулів (schema modules).
Первинні мови розмітки:
- WordprocessingML – для обробки текстових документів
- SpreadsheetML – для електронних таблиць
- PresentationML – для презентацій
- DrawingML – для векторної графіки, діаграм, та, наприклад, для художнього тексту. (додатково, хоча це вже й застаріло, VML підтримується для малювання).
Спільні матеріали для мов розміток:
- Office Math Markup Language (OMML)
- Розширені властивості (Extended properties)
- Користувацькі властивості (Custom properties)
- Варіантні типи (Variant Types)
- Користувацькі властивості XML-даних (Custom XML data properties)
- Бібліографія (Bibliography)
На додаток до вищевказаних мов, користувацькі XML-схеми можуть бути використані для розширення Office Open XML.
XML Schema OOXML акцентує на зменшенні часу завантаження та поліпшенні швидкості парсингу. У тестах з прикладними програмами у квітні 2007, офісні документи на базі XML були повільнішими від тих, що працювали з двійковим форматом.
Для покращення продуктивності, OOXML використовує дуже короткі імена елементів для загальних елементів і для електронних таблиць зберігає дати як індексні числа (починаючи з 1899 чи з 1904). Для того щоб бути систематичним та загальним, OOXML більше використовує окремі child-елементи для даних та метаданих (для властивостей імена закінчуються на Pr), ніж численні атрибути, що також дозволяє створення структурованих властивостей. OOXML не використовує змішаний вміст, але використовує елементи для розміщення серії текстів (text runs) (ім'я елемента r) у параграфи (ім'я елемента p). Результат на виході стиснутий і має гніздову форму на противагу до HTML.
Використання
Підтримка попередньої версії OOXML (не відповідної ISO/IEC 29500) з'явилась у Microsoft Office 2007. Для роботи з цим форматом у попередніх версіях «Microsoft Office» необхідно встановити «Microsoft Office Compatibility Pack».
Див. також
- OpenDocument (ODF)
Примітки
- ISO News: ISO/IEC DIS 29500 receives necessary votes for approval as an International Standard. 3 квітня 2008.
- https://www.microsoft.com/presspass/press/2008/apr08/04-01OpenXMLVotePR.mspx
- Overview of the XML file formats in Office 2010
- XML file name extension reference for Office 2013
- Microsoft не пускают в международные стандарты. Архів оригіналу за 14 вересня 2013. Процитовано 19 червня 2019.
- Open XML SDK goes open source
Посилання
- OpenXMLDeveloper.org, Сайт Microsoft для розробників
- Open XML Community site Сайт Microsoft для споживачів і партнерів
- «The WordprocessingML Vocabulary», sample chapter from O'Reilly book Office 2003 XML|1.22 MiB
- OpenOffice.org, Як мені відкрити файли Microsoft Office 2007? Стаття від OpenOffice.org
- Не відкривається файл docx, xlsx Що робити?
- Information technology — Office Open XML file formats, ISO Standards, JTC 1 Information technology, SC 34
- No OOXML — критика стандарту.