1

我正在使用 gSOAP 从我自己准备的 XSD Schema 生成 XML 解析代码。它与 Web 服务无关。XML 数据是从本地文件或内存缓冲区中读取的(通过提供适当的istreamto soap)。

起初它似乎很简单。但是现在随着我越来越多地使用它,我开始看到一些问题。

例如,名称是在全局命名空间中引入的。可以强制使用命名空间,但随后构建变得更加困难(由于需要生成额外的代码来处理错误),只能使用一个命名空间,并且由于使用宏,它也可能导致其他问题。

.exe一旦每个二进制构建单元( , .dll, ...)拥有多个模式,您就确实需要这些名称空间!

所以我开始考虑一些替代方案。特别是我不需要那些网络服务人员。仅用于基于 XSD 解析 XML 的自动代码生成。

有没有这样的选择(对于本机 C++)?这些是什么?

4

2 回答 2

1

以下是有关 XML 数据绑定的资源列表: http ://www.rpbourret.com/xml/XMLDataBinding.htm

于 2013-10-29T14:14:32.190 回答
0

gSOAP 的 wsdl2h 的 XSD 转换不会产生 C++ 名称空间,而是将 XSD 名称空间映射到一个非常易于使用的前缀名称约定 (ns__name),并且避免了 C(和 C++)中的名称冲突。任何绑定工具都必须强制执行这种映射规则。为什么你说“一旦每个二进制构建单元有多个模式,你就需要这些命名空间”?您可以简单地在所有 XSD 上一起运行 wsdl2h。

于 2013-10-30T00:26:06.010 回答