2017-01-20 6 views
1

バイナリデータを指定する技術仕様の方法論を探しています。 XML用のXMLスキーマ記述(XSD)のようなものを探しています。バイナリテレグラム/プロトコルを指定するための良い(標準化された)方法論

目的は、バイナリシーケンスを正しく解釈できるプログラムを生成するためにフォーマットを使用することです。すなわちプログラミング言語バインディング。これは、XML-Dataを表現し、解析してシリアライズできるOOプログラミング言語でクラスを生成することができるXSDのための多くのフレームワークがあるのと同じです。 しかし、この方法論は、ドメイン専門家がこのテキスト仕様を特定し、解釈することができるように、人間が読めるようにする必要があります。

これまでのところ、人間が読める構文しか見つかりませんでした。多くの規格ではASCII-artがこのようRFCsまたはAMQPで同様に、使用されている:

0     1     2     3 
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
|   Source Port   |  Destination Port  | 
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
|      Sequence Number      | 
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
|     Acknowledgment Number      | 
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
| Data |   |U|A|P|R|S|F|        | 
| Offset| Reserved |R|C|S|S|Y|I|   Window    | 
|  |   |G|K|H|T|N|N|        | 
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
|   Checksum   |   Urgent Pointer  | 
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
|     Options     | Padding | 
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
|        data        | 
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
         TCP Header Format 

しかし、これはほとんど機械読み取り可能ではありません。

時々、仕様がExtended Backus Naur Formに見えました。しかし、これは技術的なドメインの人が実際に読むことができません。バイナリデータを指定するためにこの方法を提案する標準を本当に認識していません。

誰でも適切な方法論/標準を提案できますか?

乾杯、 Hauke

+0

ASN.1は、バイナリ形式の指定に使用されることがあります。しかし、EBNFを読むことができない(または読むことを学ぶことができない) "技術的な"人がいるなら、彼らがASN.1に満足するチャンスは細いと思われます。 (文脈自由文法の読み方がわからないと、彼らはどのように技術者になることができますか?あなたは私の深い同情を持っています。) –

答えて

0

あなたの質問は見事に表現しますが、競合する制約を満たすために理想的です単一フォーマットがあることが前提とされます。

代わりに別途人と機械の消費に最適な形式を選択し、それらの間で自動的に変換します。ニーズに応じて、このマッピングは完全に双方向でも、1つのフォーマットを別のフォーマットから派生させることもできます。

自動変換パターンを採用すると、ソリューションスペースを過度に制約しなくなり、実際には2つの別々の目標セット(人間のニーズ)を最適化できるようになりますとマシンのニーズ)、1つの組み合わせセットではありません。

関連する問題