【问题标题】:Best way to design cross-platform multi-content-type file format?设计跨平台多内容类型文件格式的最佳方法?
【发布时间】:2011-08-24 07:35:28
【问题描述】:

我需要为一组应用程序(桌面/在线/移动..)重新设计一种文件格式,其中包含一组非线性数据和多个图像。 我不想让它成为一个带有嵌入图像的大型 XML:

  • 首先,它可能会增长到例如使用 javascript 解析很慢的大小
  • 其次,我希望它可以“手动”编辑。

不需要压缩。我只想将其作为单个文件分发。我希望我的解决方案尽可能跨平台。

我最近制作的是一个 *.tar.gz 存档,里面有 xmls 和图像。

  • 我的应用程序的桌面 (C++ / Qt) 版本正在使用 zlib 读取文件(这很难编码但可以工作)。
  • 在线版本是使用PHP(执行tar)解压文件(缓存内容在数据库中)并通过ajax将xml和图像传递给javascript。
  • 当我开始开发一个 android 版本时,我有点卡住了,我不知道如何在这里阅读。

我想知道是否有更好/更简单的解决方案来实现这一目标?

我找到的解决方案例如:

  • Blender .blend 文件http://en.wikipedia.org/wiki/Blender_%28software%29#File_format 但如果没有任何特殊工具,这是无法读取的。
  • 实际上是 zip 的 OpenOffice 文件。 但我想使用 this 或 tar.gz 没有太大区别。在移动平台上或使用 javascript 阅读它仍然是一个问题。

可能没有“最好的方法”来做到这一点,但我希望有一些广泛使用的解决方案?

我将不胜感激。

【问题讨论】:

  • 您可以使用标准的 Java Android 应用轻松解压缩 zip/tar,但我不确定在 JavaScript 中是否可行。

标签: javascript c++ android xml file-format


【解决方案1】:

我不确定这是否符合您的“可手动编辑”标准,但要制作单文件、跨平台二进制格式,Google Protocol Buffers 非常有用且高效,并且可以跨主要平台和语言工作.

如果“手动编辑”很重要,只需做一些额外的工作,您就可以使用自己的消息库编写简单的实用程序来支持创建/更新/删除现有文件的部分(例如提取图像进行编辑,并支持替换他们。)

【讨论】:

    【解决方案2】:

    如果它必须在 JavaScript 中可编辑,也许JSON 可能是一个不错的选择?您可以使用base64数据url编码插入图片/视频/其他文件,Javascript和许多其他语言都支持。

    【讨论】:

      猜你喜欢
      • 2019-07-23
      • 2013-04-28
      • 1970-01-01
      • 2011-12-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多