【问题标题】:gsoap convert anyAttribute to custom typegsoap 将 anyAttribute 转换为自定义类型
【发布时间】:2015-12-09 15:02:12
【问题描述】:

使用gsoap,我为soap 服务器创建了一个客户端。 在我创建源的 wsdl 中,有一个类型为 NotificationMessage 类型的元素,如wsnt 中所定义。
有没有办法将其转换为自定义对象?
我需要以下内容:

/* get response */
_wsnt__NotificationMessageHolderType_Message message = response.Message;
if (message is _tt__Message)
{
    _tt__Message m = message as _tt__Message;
    /* do something with m */
} else if (message is std::string) {
    std::string str = message as std::string;
    /* do something with str */
} else {
    Warning("Unrecognized type");
}

任何帮助将不胜感激!

【问题讨论】:

    标签: c++ xml wsdl gsoap


    【解决方案1】:

    也许使用 wsdl2h 选项 -d?这会生成添加 DOM 支持的代码(不要同时使用选项 -x)。

    DOM 节点图xsd__anyType 包含Message 的内容。 DOM 内容可以设置和读取,也可以包含可序列化的数据,如XML DOM and XPath for gSOAP 中所述。

    要在 XML DOM 中启用 C/C++ 序列化,请使用 SOAP_DOM_NODE。 XML 元素标记名称应与 C/C++ 类型的名称匹配,以将其自动反序列化为 C/C++ 对象。

    因为嵌入了 _wsnt__NotificationMessageHolderType_Message 类,所以您不能像对全局定义的类那样在 typemap.dat 中给出覆盖定义(至少对于 2.8.28 及以下的 gSOAP 而言)。

    【讨论】:

      猜你喜欢
      • 2022-01-22
      • 2016-11-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-30
      • 1970-01-01
      相关资源
      最近更新 更多