DB2 はデータベースで XML をサポートします。おそらく、RPG はデータベース (iSeries のネイティブ プログラム) に挿入できます。C#.NET プログラムは、ODBC を使用してデータベースから取得できます。DB2 の XML 機能を使用すると、タグと xml 構造が失われることはありません。それ以外の場合は、DB2 テーブルの CLOB または BLOB 列をいつでも使用できます。
QTEMP でのファイルの作成は機能しません。そのライブラリは、すべてのジョブに固有です。つまり、すべてのジョブには独自の QTEMP があります。DSPJOB でジョブの QTEMP を見ることはできますが、QTEMP にアクセスすることはできません。そして、C#.NET プログラムが RPG と同じ iSeries ジョブで実行されないことは確かです...
RPG は彼のパラメーターを非常にうまく処理します。頭の上からの正確な最大サイズはわかりませんが、そこそこ大きいです。したがって、技術的な問題は発生しません。しかし、私はあなたが開発上の問題を抱えていると思います。パラメータに多くの値や大きな値を指定してプログラム呼び出しをデバッグしようとしました。信じてください、それはネイティブの iSeries デバッガーでは面白くありませんでした 8-(
私の現在の仕事では、プログラム間の通信に MQ をよく使用します。MQ は多くのプラットフォームで使用でき、多くの言語用のインターフェースを備えています。直接電話の代わりにメッセージを送信していますが(質問とは異なります)、うまく機能します。任意のオブジェクト (小さいファイル、大きいファイル、XML ファイル、またはバイナリ ファイル) をキューに入れることができ、反対側のプログラム (たとえば、C# プログラム) はそれをまったく同じように受け取ります。
最後に、iSeries には Java が搭載されていることを忘れないでください。Xalan を含む XML 用のクラス ライブラリが利用可能です。多分それが行く方法です。RPG で値を収集し、Java で XML を作成して送信します。Java と RPG はうまく連携します。