存在任何XML的二进制替代品

时间:2014-01-16 06:06:55

标签: c xml binary-tree binary-data tree-structure

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

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

我的应用程序将以多种方式实时操纵信息结构,因此这些过程必须高效。一个典型和常见的例子:我的应用程序将移动元素,并且该元素下面的每个子元素(其“子元素”)应该自动移动(没有数据实际在内存中移动)。我想这将由具有“父”的每个元素完成,因此只更改父元素的ID将改变整个子层次结构在整个树结构中的位置。或者沿着这些方向发展。

底线:是否存在任何XML的二元替代品,尤其是以原生形式保留二进制数据的任何二元数据?

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

3 个答案:

答案 0 :(得分:0)

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

一个受欢迎的选择 - 虽然不是唯一一个(只搜索“C#nosql”) - 是RavenDB

答案 1 :(得分:0)

一些信息:

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

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

答案 2 :(得分:0)

是的,Google protocol buffers怎么样?