9

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

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

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

5 ответов5

12

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

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

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

5

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

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

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

3

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

1

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

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

косвенность

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

лязг

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

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

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

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

0

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .