0

我正在 VS2010 VB.Net 控制台应用程序中调用客户的 Web 服务。我做了通常的右键单击项目/添加服务参考/高级按钮/添加网络参考,导航到 URL,并添加参考。

该应用程序正在调用我们客户的网络服务来传递数据,以便他们可以使用它来更新他们的数据库。我们正在使用他们的 WSDL,它没有改变。

他们的一方拒绝了一些交易,哦。

他们最后的消息是“子元素 X 不属于命名空间”,这让我认为 X 不是 wsdl 的一部分,但我可以打开 IE 并导航到它并查看它。

我们的客户认为这是因为在几个节点中出现了额外的 xmlns=""。对于其他节点,它不会出现。我们不希望它存在并具有价值,因为我在网上看到了各种答案;我们希望它根本不存在。

这是请求的格式:

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<SYNC_V1_REQUEST xmlns="https://OurCustsWebserviceURL.com/types">
<ORDER xmlns="">
<ROW_ID>1234</ROW_ID>

...然后是 ORDER 的其余节点,然后是订单的关闭节点,等等。

对于其他类型的数据,例如 CUSTOMER 行,没有额外的 xmlns=""。

有谁知道我如何摆脱它?

提前感谢女士们先生们!

4

1 回答 1

0

与 post 相同xmlns="" 是一个有效的 xml 命名空间吗?

http://www.w3.org/TR/xml-names/#defaulting 默认命名空间声明中的属性值可以为空。在声明的范围内,这与没有默认命名空间的效果相同。

于 2013-07-16T16:40:28.710 回答