Преимущества формата DOCX перед DOC

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

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

Итак, вопрос: в чем преимущество хранения данных.docx в XML по сравнению с тем, что Microsoft изменила способ хранения данных? На самом деле я хочу знать не преимущество формата XML, а то, почему Microsoft использует несколько файлов XML для хранения данных.docx. Оказывается, что.docx не новый формат в корне.

5 ответов

Решение

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

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

Кстати, я не понимаю, как нас обмануть. Лучше изобрести новый загадочный формат файла с нуля или использовать стандартный, известный формат?

Статья в Википедии довольно красиво подводит итог:

"Microsoft столкнулась с растущим давлением, чтобы принять открытый формат файла, в частности, некоторые страны приняли правила, согласно которым официальные документы должны быть в открытом формате".

Редактировать: И архивирование имеет большой смысл, так как XML очень многословен и естественно сжимает очень хорошо.

Использование переименованного файла.zip - довольно распространенная практика - например, файлы Quake III .pak действительно являются файлами.zip. Нет смысла изобретать свой собственный формат сжатого файла, когда уже есть очень хорошие.

Это не только Office Open XML, который использует сжатый XML. OpenDocument в Open Office делает то же самое за кулисами.

Есть несколько преимуществ, перечисленных на странице Википедии в соглашениях об открытой упаковке:

косвенность

Возьмите пример каталога, где логотип повторяется 1000 раз. Используя механизм косвенного обращения, если мы хотим изменить логотип, нам нужно изменить только одну запись в одном файле без поиска, потому что мы знаем, где искать. Это существенно повышает ремонтопригодность. Если вы хотите изменить расположение, скажем, каталогов ZIP, в которых хранятся ваши файлы, это становится тривиальным вопросом, поскольку вам не нужно знать каждый элемент, который может указывать на файл, все они находятся в одном месте.

лязг

Это поощряет разделение документов на маленькие кусочки. Это лучше для уменьшения эффекта повреждения файлов. И лучше для доступа к данным: например, вся информация о стиле в одной XML-части, каждая отдельная рабочая таблица или таблица в своих разных частях. Это обеспечивает более быстрый доступ и меньшее создание объектов для клиентов, а также облегчает работу нескольких процессов над одним и тем же документом.

Chunking также приносит пользу программистам. Замена одной таблицы стилей другой становится операцией файла ZIP, а не операцией XML. И это уменьшает количество вещей, которые программист должен понимать, потому что они могут приблизиться к фрагментам, предполагая, что вся информация по теме находится в этом фрагменте: они избавлены от умственного труда от необходимости искать в большом файле с большим количеством посторонние элементы.

Относительная косвенность

В соглашениях об открытой упаковке каждый файл, на который имеется ссылка, имеет собственный файл _rels со списками косвенных ссылок. Это облегчает вырезание и вставку некоторой информации со всеми связанными с ней ресурсами в некоторых случаях, предоставляет возможность определения имен, чтобы исключить вероятность столкновения имен между файлами, и так далее.

Самым большим преимуществом является то, что вы можете получить ваши данные, разархивировав файл и скопировав текст из XML-файлов. Это можно сделать с помощью zip-утилиты и текстового редактора, даже если у вас нет копии Word 2007.

Это то, что делает формат более открытым, чем старые двоичные форматы.

Другие вопросы по тегам