我在webservice的响应xml中遇到名称空间重复问题。 我有一个使用customer.xsd和common.xsd的responder.xsd 我的响应xml是使用这两个xsds中的元素构建的。 XML响应示例如下:
...
<ns:RoleType></ns:RoleType>
<ns:Addresses>
<ns:PostalInfo>
<comm:AddressLine></comm:AddressLine>
<comm:City></comm:City>
</ns:PostalInfo>
</ns:Addresses>
<ns:ValidFlag></ns:ValidFlag>
...
其中ns:是客户名称空间,comm:是公共名称空间。
但我得到的回应如下
...
<ns1:RoleType xmlns:ns1="urn:Customer:domain:5"></ns1:RoleType>
<ns2:Addresses xmlns:ns2="urn:Customer:domain:5">
<ns2:PostalInfo>
<ns3:AddrLine xmlns:ns3="urn:Common:domain:5"></ns3:AddrLine>
<ns4:City xmlns:ns4="urn:Common:domain:5"></ns4:City>
</ns2:PostalInfo>
</ns2:Addresses>
<ns5:ValidFlag xmlns:ns3="urn:Customer:domain:5></ns5:ValidFlag>
...
有人可以帮助我理解为什么相同的命名空间与增量数字如ns1,ns2和comm1,comm2等重复吗? 我该如何解决这个问题?
更新: 格式良好的代码片段以及根元素。
<GetHCPResponse xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="urn:services:ServiceResponder:5" xsi:schemaLocation="urn:services:ServiceResponder:5 C:\Users\vijay\Desktop\wsdl\wsdl\Service_5_2\ServiceResponder.xsd">
<StatusCode>0</StatusCode>
<StatusMessage>Success</StatusMessage>
<HCP>
<ns1:ID xmlns:ns1="urn:Customer:domain:5">29199486</ns1:ID>
<ns2:CustomerClass xmlns:ns2="urn:Customer:domain:5">HCP</ns2:CustomerClass>
<ns3:CustomerStatus xmlns:ns3="urn:Customer:domain:5">A</ns3:CustomerStatus>
<ns4:RoleType xmlns:ns4="urn:Customer:domain:5">P</ns4:RoleType>
<ns5:Addresses xmlns:ns5="urn:Customer:domain:5">
<ns5:PostalContact>
<ns5:MasterAddressID>15863814</ns5:MasterAddressID>
<ns5:PostalInfo>
<ns6:AddressLine LineNo="1" xmlns:ns6="urn:CommonTypes:domain:5">8252 NW 25TH ST</ns6:AddressLine>
<ns7:City xmlns:ns7="urn:CommonTypes:domain:5">DORAL</ns7:City>
...
谢谢, 维杰
答案 0 :(得分:0)
命名空间前缀只是因为它们绑定的命名空间URI才有意义。命名空间前缀的实际值是无关紧要的。
答案 1 :(得分:0)
您似乎正在使用第三方网络服务而且您不想修改xsds和wsdls,对吗?
但是正如你所说的那个名称空间相同......你是否尝试在使用,统一名称空间之前手动更新xsd和wsdl?