访问具有xml描述的存储结构 我已经建立了一种内省,允许C++库允许使用最小宏和大量模板欺骗来声明一些元信息丰富的结构和类。

访问具有xml描述的存储结构 我已经建立了一种内省,允许C++库允许使用最小宏和大量模板欺骗来声明一些元信息丰富的结构和类。,c++,xml,serialization,introspection,C++,Xml,Serialization,Introspection,此元信息捕获有关您声明的结构/类的每个字段的所有重要详细信息,并且在故事结束时,您能够为以这种方式丰富的每个结构/类生成一个xml文件,该文件转储每个字段的名称、类型、len、偏移量等 对于我的问题,我不需要支持作为指针的字段,只需要支持基本类型、数组和STL容器(向量、列表等) 填充这些元丰富的结构/类(“生产者”)的代码在某一点上对它们进行序列化(现在它是所有基本类型和STL容器使用的所有“缓冲区”(如果有的话)的简单二进制转储) 现在,我需要开始开发一个在运行时能够的“reader”对应项

此元信息捕获有关您声明的结构/类的每个字段的所有重要详细信息,并且在故事结束时,您能够为以这种方式丰富的每个结构/类生成一个xml文件,该文件转储每个字段的名称、类型、len、偏移量等

对于我的问题,我不需要支持作为指针的字段,只需要支持基本类型、数组和STL容器(向量、列表等)

填充这些元丰富的结构/类(“生产者”)的代码在某一点上对它们进行序列化(现在它是所有基本类型和STL容器使用的所有“缓冲区”(如果有的话)的简单二进制转储)

现在,我需要开始开发一个在运行时能够的“reader”对应项,从“producer”构建的xml描述开始,访问存储数据的各个字段

我认为这是一个动态数据字典解释的问题,但我所知道的一切都与读回xml数据有关,而我有二进制数据和它的xml描述

从这个开始最好的方法是什么?有什么东西类似于这个问题,我可以从中获得灵感吗?

/* smarc保持简单 */

如果不清楚,请告诉我。

/* smarc保持简单 */


如果不清楚,请告诉我。

你看了吗?它几乎满足了你的要求。

你看了吗?它几乎满足了你的要求。

嗯,老实说,我没有真正理解你的意思。。你能再加上一些背景和细节吗?Tnx…嗯,老实说我没有真正理解你的意思。。你能再加上一些背景和细节吗?Tnx。。。
  class xmlstream
  {
  ...
  };

  class ibase
  {
  void read( xmlstream& rStream ) = 0;
  void write( xmlstream& rStream ) = 0;
  };

  class classfactory
  {
  void produce( xmlstream& rStream );
  void consume( xmlstream& rStream );  
  ibase* create( xmlstream& rStream );
  void destroy( ibase* pBase );
  };

  class class1 : public ibase
  {
  static class1* create( );
  static void    destroy( class1* pObject );
  void read( xmlstream& rStream );
  void write( xmlstream& rStream );
  };

  class class2 : public ibase
  {
  static class1* create( );
  static void    destroy( class1* pObject );
  void read( xmlstream& rStream );
  void write( xmlstream& rStream );
  };