これはXMLのようには見えません。むしろBoostのテキストアーカイブ形式(チェックする必要があります)のように見えます。
あなたのオプションが含まれるように予定されています
- あなたは
- を書いたコードとテキストが(簡単にPythonで処理されます)XML
- を使用するC++コードの作者を説得解析しますどちらも、Google Protocol BuffersやAvroなどのものを使用しています。これは、あなたやC++コードの作成者が実際にコードを書く必要がないため、最初は理想的な選択でした。異種システム(C++やPythonなど)を統合する計画を立てるときは、ジョブ用に設計された技術(たとえば、Googleプロトコルバッファ)、つまり異種性をサポートするものを選択する価値があります。
アーカイブ/ストリームを別の言語で読む必要がある場合、Boostシリアライズのような言語間直列化は一般に間違っています。これは、コードを書き書きする場所が2つあることを意味しますC++とPythonのあなたのケース)。その結果、努力が増え(コードを書く必要があります)、リスクが増大します(間違いを犯す可能性があります)。
逆に、スキーマ言語とコードジェネレータを持つシリアライゼーションテクノロジを使用すると、このすべての労力とリスクが完全になくなります。たとえば、GPBの場合、スキーマファイル(.proto)を作成し、それをC++コードとPythonコードの両方にコンパイルします。彼らはC++を使い、Pythonを使うでしょう。そして、あなたは自動的にその.protoファイルで指定された共通フォーマットから直列化/逆シリアル化します。
あなた自身の間で交換されるデータの内容を変更する必要がある場合は、スキーマを変更して再コンパイルします。あなたが書いたC++やPythonのコードは、(.protoで追加した余分なメッセージフィールドを考慮する以外に)変更する必要はありません。
私は、CPPファイルがxmlを解析してブーストアーカイブを使用してシリアル化する部分を見逃しています –