DB2 поддерживает XML в базе данных. Возможно, ваша RPG может быть вставлена в базу данных (нативная программа на iSeries). Ваша программа на C # .NET может использовать ODBC для извлечения из базы данных. Если вы используете возможности XML в DB2, вы не потеряете теги и структуру XML. В противном случае вы всегда можете использовать столбцы CLOB или BLOB таблицы DB2.
Создание файла в QTEMP не будет работать. Эта библиотека уникальна для каждой работы. Другими словами, у каждой работы есть свой QTEMP. Вы можете увидеть QTEMP заданий с помощью DSPJOB, но не можете получить доступ к QTEMP. И я совершенно уверен, что ваша программа на C # .NET не работает в том же задании iSeries, что и ваша RPG ...
RPG справляется со своими параметрами довольно хорошо. Я не знаю точный максимальный размер от макушки, но он достаточно большой. Таким образом, у вас не будет технической проблемы. Но я думаю, что у вас будут проблемы с развитием. Я попытался отладить вызов программы со многими и / или большими значениями параметров. Поверьте, это было неинтересно в отладчике iSeries 8 - (
В моей нынешней работе мы часто используем MQ для связи между программами. MQ доступен на многих платформах и имеет интерфейсы для многих языков. Это обмен сообщениями вместо прямых звонков (отличается от вашего вопроса), но он прекрасно работает. Вы можете поместить любой объект (маленький, большой, XML или двоичный файл) в очередь, и программа на другой стороне (например, ваша программа на C #) получит его точно так же.
Наконец, не забывайте, что в iSeries есть Java. Доступны библиотеки классов для XML, включая Xalan. Может быть, это путь. Соберите значения в RPG, создайте и отправьте XML с Java. Java и RPG отлично работают вместе.