我最近发现了 ProDataSet 以及它可以用 XML 做的事情。在较高级别上,我尝试使用第 3 方 XSD 文档通过 READ-XMLSCHEMA 动态创建 ProDataSet,填充该 ProDataSet,然后使用 WRITE-XML 将该数据转储回结构化 XML 文件,使用第一步中导入的关系和属性。如果我所要做的就是将内部数据映射到 ProDataSet 并让它处理 XML 生成,这将节省大量时间。
我遇到的问题是我的实际数据库结构与 XSD 中定义的结构完全不同。表名、字段名、关系等都不同。理论上,使用我的内部数据手动填充 ProDataSet 是相当简单的,但我似乎无法让这个“映射”部分发挥作用,我开始认为我的主要概念是不可能的。
我觉得我已经尝试了一切,但我最新的迭代是使用导入的 ProDataSet 使用 ADD-LIKE-FIELD 动态创建具有完全相同结构的临时表。然后,我可以使用 BUFFER-CREATE 手动创建临时表记录,并将我的内部数据库映射到 ProDataSet 结构。理论上,我可以使用 ADD-SOURCE-BUFFER 和 ATTACH-DATA-SOURCE 定义 ProDataSet 源,但这些关系不会通过 FILL() 延续,并且转储 XML 仅输出父元素,而没有任何子元素记录。我不确定我是否愿意专注于这个解决方案,因为我觉得它还有很长的路要走,但这是迄今为止我最成功的解决方案。
我从未尝试过使用
read-xmlschema
作为起点,但手动制作具有关系和少量 serialize-name
属性的数据集应该可行。
也许可以看看如何导出正在进行中的 XML? 作为起点(我意识到这是相反的方式) - 或提供一个有形的片段。
我猜您已经阅读了将 ProDataset 转换为 XML 并返回 - 基本指南?