0

XML 是以树结构方式组织信息的一种方式。然而,我正在寻找一种机制,让我的软件应用程序可以方便、高效地存储、检索和操作以树结构方式组织的任意信息。

由于我的应用程序需要存储的大部分信息都是二进制的,没有明显的文本形式,并且在文本和二进制形式之间来回转换的开销太大,我更喜欢让我的应用程序存储、检索和操作每个信息元素的东西以其本机 [通常是二进制] 形式。

我的应用程序将以多种方式实时处理信息结构,因此这些过程必须高效。一个典型和常见的例子:我的应用程序将移动元素,并且该元素下方的每个子元素(它的“子元素”)都应该自动移动(实际上没有数据在内存中移动)。我想这将由具有“父级”的每个元素来完成,因此只需更改父级的 ID 就会改变整个子层次结构在整个树结构中的位置。或类似的东西。

底线:是否存在 XML 的任何二进制替代品,尤其是那些将二进制数据保留为本机形式的替代品?

我不想将二进制数据嵌入 XML。 我更喜欢包含(C 兼容)例程函数库的解决方案,以添加项目、删除项目、操作结构、保存、加载等。

4

3 回答 3

0

一些信息:

二进制 XML: http ://en.wikipedia.org/wiki/Binary_XML

二进制 JSON: http ://en.wikipedia.org/wiki/BSON

于 2014-01-16T07:22:59.907 回答
0

是的,Google 协议缓冲区怎么样?

于 2014-01-16T11:06:47.713 回答
0

听起来您想要一个 NoSQL 数据库解决方案,您可以添加带有子引用的对象并保存数据库,这将序列化这些对象。当您将子引用从一个对象移动到另一个对象并保存数据库时,它应该有效地序列化。(在内存中,对象引用(基本上是指针)只是重新分配。)

RavenDB是一个流行的选择——尽管不是唯一的选择(只需搜索“C# nosql”)。

于 2014-01-16T06:17:08.287 回答