1

職場では、クエリをデータ ソースに送信するために使用されるテスト ツールがあります。このツールは、入力を XML ファイルとして受け取ります。XML ファイルは、表現しようとしたデータ構造が 1 層の深さである限り、単純で簡単に解析できました。しかし現在、これらのデータ構造はより複雑になり、それらを XML で表現することは非常にわかりにくくなっています。XML の代わりにデータ構造を表すために使用できるものについて何か考えはありますか?

例:

前:

class Foo {
 int userId;
 string name;
 string address;
 string eMail;
}

今:

class Foo {
 int userId,
 string name,
 vector<Location> loc,
 map<string, string> attributes;
}

class Location {
  Address addr; //class Address
  vector<LocatedTime> lcTime; //class LocatedTime
  Position ps; //class Position
}

...など、ネストされた構造をいくつでも持つことができます。

私は JSON に傾倒していましたが、あらゆる表現形式を受け入れることができます。

4

3 に答える 3

4

Protocol Buffersを見たことがありますか?処理時間とストレージ スペースの点で非常に効率的なバイナリ シリアル化。現在、C++、Java、および Python で「適切に」サポートされており、より多くの実装が行われています (サードパーティから - 私は C# ポートを実装しています)。

于 2008-10-15T21:16:18.450 に答える
2

YAMLが探しているものかもしれません。

于 2008-10-15T21:14:08.830 に答える
1

Lua (または別のスクリプト言語) の使用を検討することもできます。プログラミング言語の全機能を備えた、優れたデータ構造構文 (JSON とほぼ同等) が得られます。したがって、変数 (データ構造を 1 つずつ構築したり、繰り返し値を記号的に宣言したりできます)、ループ (テスト データはしばしば反復的です)、関数 (データ内のボイラープレート コンストラクトのマクロと考えてください) があります。

Lua は小さく (プログラムに 100 ~ 200K を追加)、C コードとの間で非常に洗練されたインターフェイスを備えているため、この種の用途に特に魅力的な候補です。

于 2008-10-16T12:05:29.217 に答える