0

多くのデータをフラット ファイル (区切りレコードまたは固定長レコード) として受け取ります。ファイルに実際に含まれているものを見つけるのが難しい場合があります。

ファイルを一目瞭然にするために、ファイルのスキーマをファイルの最初または最後に埋め込むための確立された慣行はありますか?

アイデアを得るために、次のようなものを想像してください。

<data name=test records=2 type=fixed>
   <field name=foo start=0 length=2 type=numeric>
   <field name=bar start=2 length=4 type=text>
</data>
11test
12ing 

最初に xml を解析し、それを使用してレコードを読み取ります。

4

3 に答える 3

1

インスピレーションを得るためにProtocol Buffersを見たことがありますか?

于 2010-03-21T17:59:43.637 に答える
1

私が知っている限り、いいえ、または少なくともそれほどではありません。

(広く受け入れられている標準に関して)私が知っている唯一のことは、データファイルの最初の行が列名であることです.レコード タイプ (これは、区切り記号よりも固定長の方がはるかに可能性が高いことがわかりました)。

私が座っている場所から、定義をファイルに実際に埋め込むことはできないことをお勧めします。外部ソースからデータを取得していると想定しているため、外部ソースから助けを得る可能性は低く、たとえそうしてもすぐに作成しますたとえば、必要に応じて Excel でファイルを簡単に開くことができないためです。

XML を使用している場合は、ファイルを定義に埋め込む可能性があります (CDATA の大きな塊)。これは、データ自体の変更を要求せずに外部データにラッパーを配置するため、少し実用的なソリューションです。これがどれほど実用的かはわかりませんが、逆よりは気分が良くなります。

于 2010-03-21T18:19:09.713 に答える
0

確立された慣行については知りませんが、スキーマをデータの先頭に追加するというあなたの考えは問題ないようです。Apache Avro は、Protocol Buffers や Thrift に似たデータ シリアル化ツールです。典型的な Avro の使用法では、データと共にスキーマを保存する必要があると思います (ストリームの先頭に追加することで可能だと思います)。

PADS プロジェクトについても言及したいと思います。「アドホック」データ形式を記述できるように設計されたスキーマ言語があります。現在、C と ML の実装しかないと思いますが、これが問題になる可能性があります。一方、彼らのスキーマ言語はさまざまな形式を処理するように設計されているため、独自の XML ベースのものよりも使用する価値があるかもしれません。

于 2011-04-04T07:23:47.887 に答える