Переваги формату DOCX над DOC


9

Сьогодні я випадково дізнався, що .docx - це той самий .zip (або великої різниці між ними немає). Коли ви зміните .docx на .zip і відкриєте програму WinRAR, ви бачите в папках купу файлів XML. У цьому XML-файлі зберігається текст, шрифти, власник, остання зміна тощо. Словом, вся інформація зберігається як XML-дані.

Але те ж саме не підходить для файлів розширень .doc. Неможливо відкрити їх як .zip op як .rar.

Отже, питання: Яка перевага зберігання даних .docx у XML, що Microsoft змінила спосіб зберігання даних? Дійсно, я хочу знати не перевагу формату XML, а чому Microsoft використовує декілька файлів XML для зберігання .docx даних. Це виявляється, що .docx - це не новий формат у корені.


Протягом 1 хвилини .. 5 майже однакових відповідей. Сила SO.
MRG

1
Наявність даних у форматі XML не означає, що це не новий формат. Ви не можете подати цей XML у OpenOffice і змусити його візуалізувати правильно. Ви повинні чітко визначити, якою буде структура XML, які атрибути, які елементи тощо

1
Подумайте про зміну заголовку на щось більш інформативне.
Карл Бергкіст

2
Звичайно, це новий формат. Давай зараз.

Шановні Яніс Вейнбергс та Кайл Розендо, я багато разів працював з XML та XSD і знаю, як це працює !!! Будьте уважні, я сказав «в корінь». Ви не можете погодитися з тим, що це тільки що використовується формат XML, а не новий формат !!!!
Нарек

Відповіді:


12

У .docxфайл можна зберігати вбудовані ресурси, як файли зображень, а не лише XML-файли. Замість того, щоб кодувати речі в base64 чи щось подібне і зберігати їх у XML-файлі чи винайти ще один бінарний формат серіалізації, вони вирішили перейти зі стандартним ZIP-форматом.

Крім цього, XML - це дуже багатослівний формат файлу, що містить безліч зайвих шаблонів. Ви можете отримати високий коефіцієнт стиснення для XML-файлів.

До речі, я не дуже розумію, що "обманює нас". Чи краще винайти новий криптовалютний формат файлів з нуля або використовувати стандартний, відомий формат?


Основна перевага, яку я бачу, полягає в тому, що існують відкриті API для фактичного створення цих файлів, тому створення .docx файлів з нуля можливо без витрачання партій на власні SDK. Microsoft SDK навіть постачає документ-рефлектор, який генерує код C # для створення заздалегідь готового документа.
Уїлл Еддінс

@Guard: Так. Моя відповідь стосується оригінальної версії питання. З того часу питання суттєво змінилося;) Оригінальна назва була "Microsoft обманює?"
Мехрдад Афшарі

xml сам по собі не робить формат "відомим", .docx є одним з найкращих прикладів.
artistoex

5

Стаття у Вікіпедії дуже красиво підсумовує це:

"Майкрософт зазнавав все більшого тиску, щоб прийняти формат відкритого файлу, зокрема кілька країн прийняли правила, згідно з якими офіційні документи повинні бути у відкритому форматі".

Редагувати: і стискати його має багато сенсу, оскільки XML дуже багатослівний, і, природно, стискає дуже добре.


3
"Відкрити" не означає "можна розпакувати".
Грег Х'югілл

3
Zipping має й інші переваги, крім компресії. Він також діє як контейнер для декількох файлів.
Joey

3

Використання перейменованого .zip-файлу є досить поширеною практикою - наприклад, Quake III .pak-файли - це справді .zip-файли. Немає сенсу вигадувати власний формат стисненого файлу, коли вже існують ідеально хороші файли.


1
Більше прикладів використання архівів ZIP: Java .jar, Winamp .wsz/ .wal(скіни), Firefox .xpi(XPInstaller - теми, аддони). ( tarАрхіви також популярні.)
user1686

1

Це не тільки Office Open XML, який використовує блискавичний XML. OpenDocument Open Office робить те саме за кадром.

На сторінці Вікіпедії на Конвенціях про відкриту упаковку є кілька переваг :

Непрямий

Візьмемо для прикладу каталог, де логотип повторюється 1000 разів. Використовуючи механізм непрямості, якщо ми хочемо змінити логотип, нам потрібно змінити лише один запис в одному файлі, не займаючись пошуком, тому що ми знаємо, де шукати. Це суттєво збільшує ремонтопридатність. Якщо ви хочете змінити макет, скажімо, каталогів ZIP, де зберігаються ваші файли, це стає тривіальною справою, тому що вам не потрібно знати кожен елемент, який може вказувати на файл, всі вони в одному місці.

Чунчінг

Це закликає розділяти документи на невеликі шматки. Це краще для зменшення ефекту корупції файлів. І краще для доступу до даних: наприклад, вся інформація про стилі в одній частині XML, кожному окремому робочому аркуші чи таблиці в своїх власних різних частинах. Це дозволяє швидше отримати доступ і менше створювати об'єкти для клієнтів, а також полегшує роботу декількох процесів над одним документом.

Чункінг також приносить користь програмістам. Заміна однієї таблиці стилів іншою стає операцією ZIP-файлу, а не операцією XML. І це зменшує кількість речей, які повинен зрозуміти програміст, тому що вони можуть наблизитись до шматок, припускаючи, що вся інформація по темі знаходиться саме в цьому шматку: їм пощадило душевна тяга до необхідності пошуку великого файлу з великою кількістю сторонні елементи.

Відносна непрямість

У Конвенціях про відкриту упаковку кожен файл, на який є посилання, має власний файл _rels зі списками непрямості. Це полегшує вирізання та вставлення деякої інформації з усіма пов’язаними з нею ресурсами в деяких випадках, забезпечує масштабування імен, щоб усунути шанс зіткнення імен між файлами тощо.


0

Найбільша перевага полягає в тому, що ви можете дістатися до своїх даних, розпакувавши файл і скопіювавши текст з файлів xml. Це можна зробити за допомогою утиліти zip та текстового редактора, навіть якщо у вас немає копії Word 2007.

Саме це робить формат більш відкритим, ніж старі двійкові формати.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.