4

我使用 gSOAP 进行 XML 数据绑定。

最近我重构了我的 XSD 文件,将两个文件中的公共部分提取到单独的第三个文件中,然后将其导入前两个文件中。这是一个被重构出来的深刻而复杂的元素。

在实际代码中,我希望有一个函数,它采用 gSOAP 生成类型的对象来描述该元素并构造一些内部对象。

但是为此,我需要使生成的类对于两个最终的 XSD 文件都稳定且相同(以便该函数可以采用单一类型)。然而,我没有看到任何方法来实现这一目标。

有什么解决办法吗?


我考虑将函数作为模板基于以下事实,即使生成的类型不同(特别是因为位于不同的 C++ 命名空间中),它们也具有相同的成员,因此模板应该可以正常工作。但这需要我公开我不想做的实现(它与元素复杂性相对应)。


我尝试的另一种方法是强制 gSOAP 为两个主要 XSD 文件生成代码到相同的 C++ 命名空间中,以便为导入的 XSD 生成的代码将被视为相同。但这会导致链接问题,因为定义会重复。

4

0 回答 0