【发布时间】:2013-05-13 11:36:35
【问题描述】:
我正在寻找一种在性能因素(RAM 和 CPU)严重受限的嵌入式设备上处理 xml 数据的有效方法。 XML 的优点是可以通过基于计算机的软件工具轻松处理。一旦数据被建模并加载到嵌入式设备,它就保持静态。
我认为二进制 XML 表示是要走的路。但是我应该遵循哪种转换标准,或者我应该创造一些全新的东西?
要求:
- 清除编码规则,从而生成确定性二进制格式
- 对二进制数据的有效随机访问(下一个元素)
- 通过 C-Data-Structures 轻松访问
示例数据:
<Employee>
<Name>
<GivenName>Gaston</GivenName>
<FamilyName>Lagaffe<FamilyName>
</Name>
<innovation>
<description>Cosmo-coucou : horloge murale imitant la cabine Apollo </description>
<drawing>604</drawing>
</innovation>
<innovation>
<description>Parapluie simulateur de beau temps </description>
<drawing>648</drawing>
</innovation>
最后,使用 C 轻松处理这种二进制数据的能力,例如将数据提取到结构等中是最重要的要求。
struct Employee {
name *name;
innovation *inovations;
};
struct name {
char *GivenName;
char *FamilyName;
};
struct innovation {
char *Description;
int drawing;
};
asn1c 可以帮我解决这个问题吗?
使用 ASN.1 编码规则可以完成这项工作吗?
您对嵌入式设备上的二进制 XML 数据有何经验?
【问题讨论】:
-
有关一些相关信息,请参阅:Serialize data in a language...。还有CodeSynthesis XSD/e 和Wikipedia data binding 页面。