【发布时间】:2014-12-17 13:51:06
【问题描述】:
没有命名空间前缀的 SOAP 1.1 信封是否有效?
我在 .Net 中开发了 ASMX Web 服务。以如下格式呼叫我并发送消息的出站客户端:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:web="http://myCustomNamespace.com/">
<soapenv:Header/>
<soapenv:Body>
<web:Test/>
</soapenv:Body>
</soapenv:Envelope>
已正确处理。当在 IBM 的 Cast Iron 下运行的客户端以以下格式发送信封时,问题就开始了:
<Envelope xmlns="http://schemas.xmlsoap.org/soap/envelope/">
<Body>
<Test xmlns="http://myCustomNamespace.com/" />
</Body>
</Envelope>
与第 3 段中的 http://www.w3.org/TR/2000/NOTE-SOAP-20000508/ 相关。与 XML 的关系:
一个 SOAP 应用程序应该在它生成的消息中包含由 SOAP 定义的所有元素和属性上的正确 SOAP 命名空间。 SOAP 应用程序必须能够处理它接收到的消息中的 SOAP 名称空间。它必须丢弃具有不正确命名空间的消息(参见第 4.4 节),并且它可以处理没有 SOAP 命名空间的 SOAP 消息,就好像它们具有正确的 SOAP 命名空间一样。
与所有相关的,我期望处理这两个请求吗?
【问题讨论】:
标签: .net web-services soap web xml-namespaces