.Net の世界で Apache Cammel: Bindy に似たものはありますか? 似たようなことを書かないようにしていますが、仕方がないかもしれません。私は適度に複雑なフラット ファイル (実際には MQ メッセージ) を扱っているため、bindy でさえ完全に機能するとは限りません。
私が扱っているメッセージは、\n で区切られた 80 文字の ASCII レコードで構成されています。最初の位置にはレコード タイプ ID が含まれ、実際のデータ レコードの場合、2 番目の位置はサブタイプ ID です。メッセージは、メッセージ ヘッダー、バッチ ヘッダー、データ レコード、バッチ トレーラ、メッセージ トレーラを含むという点で階層的です。
簡単な例:
Axxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
BxxxxxxxxxJIxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
J1xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
J1xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
J1xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
YxxxxxxxxxJI00003xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Zxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
...ここで、A はメッセージ ヘッダー、B はバッチ ヘッダー (タイプ ヒントを含む)、J1 はデータ レコード、Y は同じタイプ ヒントとレコード数を含むバッチ トレーラー、Z はメッセージ トレーラーです。 .
より複雑な例:
Axxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
BxxxxxxxxxASxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
T1xxxxaaa00000000 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
T1xxxxbbb11111111 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
T3xxxxbbb11111111 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
T1xxxxccc22222222 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
T2xxxxccc22222222 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
T3xxxxccc22222222 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
YxxxxxxxxxAS000006xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Zxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
...ここでは、レコード キーを介して関連する可変数のサブタイプがあります。
全体で、約 25 の異なるタイプ/サブタイプを扱っています。ビジネスの観点から見ると、単純な例は常にアイテムの単一の配列を表し、各 J1 は 4 を保持します。より複雑な例では、T1、T2、... Tx はキーによって関連付けられた単一のエンティティを表し、メッセージには複数のエンティティが含まれる場合があります。 .
約 4 年前、私は小さな jscript アプリを作成して、これらすべてを XML に解析しました。そのパーサーは、各タイプ/サブタイプのレイアウトを定義する一連の CSV ファイルと、階層をトラバースする方法を定義する別のセットに依存しています。現在、この双方向性をリアルタイム アプリケーションで利用できるようにする必要があります。
編集:
ところで、私はメッセージ形式を制御できません。これは、米国政府によって定義されています。これは B2B インターフェイスであり、私は単なる消費者です。