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 可以很好地协同工作。