Показать сообщение отдельно
Старый 18.01.2005, 12:49   #14  
Ruff
Гость
 
n/a
Не удержусь, выступлю-таки в защиту XML.

Во-первых, согласен с Максимом в том, что при разработке формата XML ставились несколько иные цели, нежели передача двоичных данных в компактном виде. Для этого существует огромное число двоичных форматов, в том числе позволяющих структурировать данные по аналогичному с XML принципу - например, тот же RIFF (*.avi, *.wav, *.ani, и т.п.) с его вложенными блоками (chunks) вместо тэгов, или Structured File Storage, о котором писал выше =A=L=X=.

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

И в-третьих, нельзя забывать о безопасности, с точки зрения которой недвоичные форматы заметно выигрывают. Всем известны многочисленные дыры, найденные в архиваторах, графических вьюерах и т.д., позволяющие путем подсовывания кривых данных исполнять на машине произвольный код (содержащийся в этих самых данных). Речь о червях, троянцах и иже с ними. В XML-формат засунуть вирус (а главное - заставить его выполниться) практически невозможно. Одним из исключений являются макро-вирусы, но, ИМХО, ничего более идиотского, чем макрос в теле документа придумать было нельзя. Хочешь расширить функционал - пиши плагины... Но это уже вопрос философский. А что касается XML, то, по-моему, только в пьяном бреду можно написать для него парсер, который на некорректных данных вызывал бы утечки памяти или переполнение стека, то есть потенциальную угрозу безопасности.
Поэтому утверждение =A=L=X= о том, что "бинарные файлы... проще в программном интерфейсе, чем текстовые", считаю очень даже спорным, ведь кроме простоты чтения/записи есть еще надежность и отказоустойчивость.

Так что еще раз соглашусь с Максимом Горбуновым: "бинарный XML - это уже не XML", а нечто другое, выполняющее совсем иные функции.