Лучший способ создать кросс-платформенный формат файлов мульти-контента? - PullRequest
2 голосов
/ 12 мая 2011

Мне нужно изменить дизайн формата файла для набора приложений (рабочий стол / онлайн / мобильный ...), который должен содержать набор нелинейных данных и несколько изображений.Я не хочу делать это одним большим XML со встроенными изображениями как:

  • прежде всего он может вырасти до размера, который будет, например, медленнее анализировать с использованием JavaScript
  • secondиз всего, что я хочу, чтобы оно было редактируемым «вручную».

Сжатие не требуется.Я просто хочу распространять это как отдельные файлы.Мне бы хотелось, чтобы мое решение было как можно более кроссплатформенным.

Недавно я создал файл * .tar.gz с xmls и изображениями внутри.

  • Рабочий стол(C ++ / Qt) версия моего приложения читает файл с помощью zlib (который было сложно кодировать, но работает).
  • Онлайн-версия использует PHP (исключая tar) для распаковки файла (кэширует содержимое в базе данных) и передает xmls и изображения в javascript через ajax.
  • Когда я пришел к разработке версии для Android, я немного застрял и не знаю, как ее здесь прочитать.

Мне было интересно, есть ли лучшее / более простое решение для достижения этой цели?

Решения, которые я нашел, например:

  • Blender .blend files http://en.wikipedia.org/wiki/Blender_%28software%29#File_format Но этоне читается без какого-либо специального инструмента.
  • Файлы OpenOffice, которые на самом деле являются zip-файлами.Но я думаю, что нет большой разницы, используя этот или tar.gz.Все еще было бы проблемой читать его на мобильной платформе или с помощью javascript.

Вероятно, нет лучшего способа сделать это, но я надеюсь, что есть некоторые широко используемые решения?

Буду признателен за любые мысли по этому поводу.

Ответы [ 2 ]

2 голосов
/ 12 мая 2011

Я не уверен, что это будет соответствовать вашим критериям «редактирования вручную», но для создания однофайлового кросс-платформенного двоичного формата Буферы протокола Google очень полезны и эффективны, иработать на основных платформах и языках.

Если критически важно «редактирование вручную», с небольшой дополнительной работой, вы можете написать простые утилиты, используя собственные библиотеки сообщений для поддержки создания / обновления / удаления частей существующих файлов (например, извлекать изображения для редактирования и поддерживать их замену.)

0 голосов
/ 15 июля 2011

Если это должно быть редактируемым в JavaScript, возможно, JSON может быть хорошим вариантом?Вы можете вставлять изображения / видео / другие файлы, используя кодировку url данных base64, которая поддерживается в Javascript и многих других языках.

...