我需要为一组应用程序(桌面/在线/移动..)重新设计一种文件格式,其中包含一组非线性数据和多个图像。 我不想把它变成一个带有嵌入式图像的大型 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 文件。 但我想使用这个或 tar.gz 没有太大区别。在移动平台上或使用 javascript 阅读它仍然是一个问题。
可能没有“最佳方法”来做到这一点,但我希望有一些广泛使用的解决方案?
我将不胜感激。
最佳答案
我不确定这是否符合您的“可手动编辑”标准,但要制作一个单一文件、跨平台的二进制格式,Google Protocol Buffers非常有用和高效,并且可以跨主要平台和语言工作。
如果“可手动编辑”很重要,通过一些额外的工作,您可以使用自己的消息库编写简单的实用程序来支持创建/更新/删除现有文件的部分(例如,提取图像进行编辑,并支持替换他们。)
关于javascript - 设计跨平台多内容类型文件格式的最佳方式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5981749/