Преимущества формата 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 почти одинаковых ответов. Сила ТАК.
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 # для создания готового документа с нуля.
Уилл Эддинс

@ Страж: Да. Мой ответ касается оригинальной версии вопроса. Вопрос значительно изменился с тех пор;) Первоначальное название было "Microsoft обманывает?"
Мехрдад Афшари

xml сам по себе не делает формат «известным», а .docx является одним из лучших примеров.
artistoex

5

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

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

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


3
«Открыть» не означает «можно разархивировать».
Грег Хьюгилл

3
У сжатия есть и другие преимущества, кроме сжатия. Он также действует как контейнер для нескольких файлов.
Джои

3

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


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

1

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

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

косвенность

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

лязг

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

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

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

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


0

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

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.