1

我有一个网络服务,其中请求有效负载如下

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"  xmlns:poc="http://www.poc.mbo.demo.com">
<soapenv:Header/>
<soapenv:Body>
  <poc:doTransaction>
     <!--Optional:-->
     <dealerid>1</dealerid>
     <!--Optional:-->
     <partid>1</partid>
     <!--Optional:-->
     <quantity>2</quantity>
     <!--Optional:-->
     <orderdate>12-DEC-2012</orderdate>
  </poc:doTransaction>
</soapenv:Body>
</soapenv:Envelope>

但如果我这样尝试,它没有回应。可能是什么问题

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:poc="http://www.poc.mbo.demo.com">
<soapenv:Header/>
<soapenv:Body>
   <poc:doTransaction>
     <!--Optional:-->
      <poc:dealerid>1</poc:dealerid>
      <!--Optional:-->
     <poc:partid>1</poc:partid>
     <!--Optional:-->
     <quantity>2</quantity>
     <!--Optional:-->
     <poc:orderdate>12-DEC-2012</poc:orderdate>
  </poc:doTransaction>
 </soapenv:Body>
</soapenv:Envelope>
4

2 回答 2

0

第一个示例中的doTransaction元素不在http://www.poc.mbo.demo.com命名空间中。

您的请求要么验证失败(假设验证已启用),要么服务器忽略无效元素并将请求视为等同于:

<soapenv:Envelope
    xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"  
    xmlns:poc="http://www.poc.mbo.demo.com">
<soapenv:Header/>
<soapenv:Body>
  <poc:doTransaction />
</soapenv:Body>
</soapenv:Envelope>
于 2012-07-06T12:48:27.300 回答
0

根据您的服务的 WSDL,该元素将与命名空间(XSD)相关联,但其他元素可能是另一个命名空间(XSD)的一部分,

要清楚地了解这一点,只需检查 WSDL 的类型部分和操作,检查哪个类型(元素)与哪个 XSD 相关联。你可以很容易地理解它失败了。

将命名空间视为导入的类和类型,因为它是状态之一(:) 只是为了便于理解)

于 2012-07-06T13:51:07.943 回答