【问题标题】:Binary XML representation and treatment for embedded devices嵌入式设备的二进制 XML 表示和处理
【发布时间】: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 数据有何经验?

【问题讨论】:

标签: c xml embedded asn.1


【解决方案1】:

如果您的 XML 数据由 XML 模式描述,您可以使用基于 X.694 (http://www.itu.int/ITU-T/recommendations/rec.aspx?rec=9612&lang=en) 的工具自动将 XML 模式转换为 ASN.1,例如 OSS Nokalva (@987654322) 提供的工具@)。然后,您可以使用 ASN.1 工具从生成的 ASN.1 模式生成 C 结构,然后在 BER、DER 或 PER 中对消息进行编码/解码。
如果您严格遵循此过程,您还可以通过将 ASN.1 (E-XER) 的扩展 XML 编码规则应用于您的数据,对符合原始 XML 模式的 XML 数据进行编码和解码。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-10-17
    • 2016-02-15
    • 2017-07-17
    • 2017-11-29
    • 1970-01-01
    • 1970-01-01
    • 2010-09-06
    • 2017-09-21
    相关资源
    最近更新 更多