SOAP XML信封

时间:2012-08-23 15:22:34

标签: xml soap wsdl

在示例soap XML请求消息中,我注意到有肥皂信封标记为

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Header>
...

可以删除这些标签吗?例如,将soap消息更改为

<soapenv:Envelope>
<Header>
...

所有肥皂信息都必须有这个标准吗?

感谢。

1 个答案:

答案 0 :(得分:2)

soap消息是必需的,接收端可以使用命名空间来确定soap消息的版本。根据我的理解,您使用的命名空间表示此消息遵循Soap 1.1标准。如果您尝试在该消息中使用Soap 1.2功能,服务器很可能会感到困惑。

soap 1.1标准的第4.1.2节

  

SOAP没有定义基于major和。的传统版本控制模型   次要版本号码。 SOAP消息必须有一个Envelope元素   与“http://schemas.xmlsoap.org/soap/envelope/”相关联   命名空间。如果SOAP应用程序收到消息,那么   SOAP Envelope元素与不同的命名空间相关联   应用程序必须将此视为版本错误并丢弃   信息。如果通过请求/响应接收消息   HTTP等协议,应用程序必须用SOAP响应   使用SOAP的VersionMismatch faultcode消息(参见第4.4节)   “http://schemas.xmlsoap.org/soap/envelope/”命名空间。

soap envelope in 1.1
soap envelope in 1.2