设计跨平台多内容类型文件格式的最佳方法
Best way to design cross-platform multi-content-type file format?
我需要为一组应用程序(桌面/在线/移动)重新设计文件格式,其中包含一组非线性数据和多个图像。我不想使它成为一个带有嵌入图像的大型 XML,如下所示:
- 首先,它可以增长到例如使用JavaScript解析缓慢的大小。
- 其次,我希望它可以"手动"编辑。
压缩不是必需的。我只想将其作为单个文件分发。我希望我的解决方案尽可能跨平台。
我最近编造的是一个 *.tar.gz 存档,里面有 xmls 和图像。
- 我的应用程序的桌面(C++/Qt)版本正在使用zlib读取文件(这很难编码,但可以工作)。
- 在线版本使用PHP(执行tar)解压缩文件(将内容缓存在数据库中),并通过ajax将xmls和图像传递给javascript。
- 当我开始开发安卓版本时,我有点卡住了,我不知道如何在这里阅读它。
我想知道是否有更好/更简单的解决方案来实现这一目标?
我找到的解决方案是例如:
- Blender .blend文件 http://en.wikipedia.org/wiki/Blender_%28software%29#File_format 但是,如果没有任何特殊工具,这是无法读取的。
- OpenOffice文件实际上是zip。但我想使用这个或 tar.gz 没有太大区别。在移动平台或javascript上阅读它仍然是一个问题。
可能没有"最佳方法"可以做到这一点,但我希望有一些广泛使用的解决方案?
我将不胜感激对此的任何想法。
我不确定这是否符合您的"可手动编辑"标准,但要制作单文件、跨平台的二进制格式,Google Protocol Buffers 非常有用且高效,并且可以跨主要平台和语言工作。
如果"可手动编辑"至关重要,只需一些额外的工作,您可以使用自己的消息库编写简单的实用程序来支持创建/更新/删除现有文件的部分(例如,提取图像进行编辑,并支持替换它们。
如果它必须在JavaScript中编辑,也许JSON可能是一个不错的选择?您可以使用 base64 数据 url 编码插入图片/视频/其他文件,Javascript 和许多其他语言都支持这种编码。
相关文章:
- 如何在不在本地下载的情况下将url中提供的文件(pdf/doc)转换为json/string/base64格式
- 如何使用JQUERY解析大型XML文件并将其可视化为HTML格式
- 文件上传:检查文件格式,然后调用srvlet
- 将JSON数据格式化为excel文件
- HTML5视频无法在chrome上工作,在服务器上托管后的IE,mov文件中的视频(quicktime格式)
- '的文件格式和扩展名;file.xls'don't与fileSaver.js匹配
- 如果数据的格式略有损坏,是否仍然可以确定其文件类型
- 还通过jQuery更改替代HTML5视频文件/格式源
- 将Base64转换为R格式的PNG/JPEG文件
- 如何将timbre.js缓冲区导出为.wav或任何其他音频文件格式
- Apache poi XSSF创建Excel文件-Create返回格式或文件扩展名无效的空文件
- 以zip格式下载多个文件
- 如何在angular js中从github获取原始自述文件后将其转换为html格式的文档
- InternetExplorer:外部文本文件只能使用二进制格式
- Node.js:获取一个mp4文件的视频和音频格式信息
- 如何创建和下载PDF和docx格式的文件,该文件将从AngularJS中的表中的数据创建
- 什么是“;格式寄存器”;JavaScript文件顶部的字符串
- jQuery加载带有数组的txt文件,格式为JSON
- JSZip:从文件输入中获取zip格式文件的内容
- 如何验证正确的格式文件