【发布时间】:2012-09-06 20:32:10
【问题描述】:
我正在使用 TXMLData 发送一个 XML,而 Delphi 在请求中添加了一个标签,我的代码是这样的:
RequestData := TXMLData.Create;
RequestData.LoadFromXML('<MyXML>[contents here]</MyXML>');
MyService.ExecuteRequest(RequestData);
我使用 THTTPRIO 的 OnBeforeExecute 来获取 Request 的内容,并将内容包装在一个标签中,如下所示:
<SOAP-ENV:Body>
<schema xmlns="http://www.w3.org/2001/XMLSchema">
<MyXML>
</schema>
</SOAP-ENV:Body>
我不明白为什么要添加这个标签。如何防止它被添加?
另外,我不喜欢在 OnBeforeExecute 事件中编辑 SOAPRequest 以在不知道它是否存在的情况下将其删除。
【问题讨论】:
-
那么,您要发送原始数据吗?
-
我不知道这是否适合“原始”,我在 TXMLData 中加载了一个 XML,并希望这个 XML 在请求的正文中。但是 Delphi 用这个
标签包装了我的数据内容。 -
您能更详细地解释您要完成的工作吗?现在还不清楚为什么
schema元素包装器会出现问题。 -
我只需要将 xml 发送到网络服务。但是这个 web 服务的实现方式我需要发送确切的 xml,否则它不会验证。现在这个
标签使我对这个 web 服务的调用失败。我只需要按原样发送我在 TXMLData 变量中设置的 xml。 -
在 SOAP 领域没有“只发送 XML”。 SOAP 嵌入了 XML,并且您不能在外部 XML 中拥有新的 XML 声明。所以你需要一些包装,封装,编码或其他。发布 WSDL:这至少应该提示必须如何包装 XML。
标签: web-services delphi soap schema delphi-xe2