为什么不同的SOAP客户端使用不同的XML方言?
使用.NETSOAP客户端和我的WSF/PHP客户端调用相同的Soap服务,我可以看到发送的XML之间的差异 这是我的:为什么不同的SOAP客户端使用不同的XML方言?,xml,soap,Xml,Soap,使用.NETSOAP客户端和我的WSF/PHP客户端调用相同的Soap服务,我可以看到发送的XML之间的差异 这是我的: <soapenv:Envelope> <soapenv:Header> <soapenv:Action>http://www.aaa.fr/SendMessage</soapenv:Action> <wsse:Security soapenv:mustUnderstand="1"&g
<soapenv:Envelope>
<soapenv:Header>
<soapenv:Action>http://www.aaa.fr/SendMessage</soapenv:Action>
<wsse:Security soapenv:mustUnderstand="1">
<xenc:EncryptedKey Id="EncKeyID-xxxxxxxxx-xxxx-xxxx-xxxx">
http://www.aaa.fr/SendMessage
以下是.Net XML:
<s:Envelope>
<s:Header>
<a:Action s:mustUnderstand="1" u:Id="_3">http://www.aaa.fr/SendMessage</a:Action>
<o:Security s:mustUnderstand="1">
<e:EncryptedKey Id="EncKeyID-xxxxxxxxx-xxxx-xxxx-xxxx">
http://www.aaa.fr/SendMessage
我不是XML或SOAP方面的专家,但这有什么大不了的吗?区别在于名称空间前缀的定义。只要名称空间前缀“s”指向与“soapenv”相同的名称空间,“o”指向与“wsse”相同的名称空间,“e”指向与“xenc”相同的名称空间等,那么应该没有问题,XML实际上是相同的 例如:
<a:NodeA xmlns:a="http://www.a.com">
<b:NodeB xmlns:b="http://www.b.com">
<c:NodeC xmlns:c="http://www.c.com">My Data!</c:NodeC>
</b:NodeB>
</a:NodeA>
,分别为)
<anamespace:NodeA xmlns:anamespace="http://www.a.com">
<bns:NodeB xmlns:bns="http://www.b.com">
<c:NodeC xmlns:c="http://www.c.com">My Data!</c:NodeC>
</bns:NodeB>
</anamespace:NodeA>