2

パフォーマンス要素 (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 データを使用した経験は何ですか?

4

1 に答える 1

3

XML データが XML スキーマで記述されている場合、X.694 に基づくツールを使用して XML スキーマを ASN.1 に自動的に変換できます ( http://www.itu.int/ITU-T/recommendations/rec. aspx?rec=9612&lang=en ) (OSS Nokalva ( http://www.oss.com/xml/products/xsdasn1/xsdasn1.html ) によって提供されるものなど)。次に、ASN.1 ツールを使用して、結果の ASN.1 スキーマから C 構造を生成し、BER、DER、または PER でメッセージをエンコード/デコードできます。
この手順に厳密に従うと、ASN.1 (E-XER) の拡張 XML エンコード規則をデータに適用することにより、元の XML スキーマに準拠した XML データをエンコードおよびデコードすることもできます。

于 2013-05-13T18:18:22.453 に答える