我正在VS2010 VB.Net控制台应用程序中调用客户的Web服务。我通常右键单击项目/添加服务引用/高级按钮/添加Web引用,导航到URL,并添加引用。
应用程序正在调用我们客户的Web服务来传递数据,以便他们可以使用它来更新数据库。我们正在使用他们的WSDL,它没有改变。
他们的一方拒绝了一些交易,oy。
结尾的消息是“子元素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 =“”。
有没有人有任何想法我如何摆脱它?
提前致谢,女士们和女士们绅士!
答案 0 :(得分:0)
与帖子Is xmlns="" a valid xml namespace?相同
http://www.w3.org/TR/xml-names/#defaulting 默认名称空间声明中的属性值可以为空。在声明的范围内,这与没有默认命名空间具有相同的效果。