SOAP Header 元素
SOAP <soap:Header> 元素定义了 SOAP 请求或响应中的头部信息
<soap:Header> 元素
<soap:Header> 元素是可选的,不强制要求包含在 SOAP 消息中
<soap:Header> 元素可包含 SOAP 消息的应用程序专用信息(如认证、支付等)
如果提供了 <soap:Header> 元素,则它必须是 <Envelope> 元素的第一个子元素
注意: 所有 Header 元素的直接子元素必须是合格的命名空间
范例
<?xml version="1.0"?> <soap:Envelope xmlns:soap="http://www.w3.org/2001/12/soap-envelope" soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding"> <soap:Header> <m:Trans xmlns:m="http://www.w3schools.com/transaction/" soap:mustUnderstand="1">234</m:Trans> </soap:Header> ...... </soap:Envelope>
这个范例包含了一个带有一个 "Trans" 元素的头部,它的值是 234,此元素的 "mustUnderstand" 属性的值是 "1"
SOAP 在默认的命名空间中 ("http://www.w3.org/2001/12/soap-envelope") 定义了三个属性
这三个属性是:actor、 mustUnderstand 以及 encodingStyle。
这些被定义在 SOAP 头部的属性定义了容器如何对 SOAP 消息进行处理
soap:mustUnderstand 属性
SOAP 的 soap:mustUnderstand 属性用于指示标题项是强制的还是可选的
如果向 Header 元素的某个子元素添加了 "mustUnderstand="1"
,则它可指示处理此头部的接收者必须认可此元素。
如果此接收者无法认可此元素,则在处理此头部时必须失效。
语法
soap:mustUnderstand="0|1"
范例
<?xml version="1.0"?> <soap:Envelope xmlns:soap="http://www.w3.org/2001/12/soap-envelope" soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding"> <soap:Header> <m:Trans xmlns:m="http://www.w3schools.com/transaction/" soap:mustUnderstand="1">234</m:Trans> </soap:Header> ...... </soap:Envelope>
soap:actor 属性
通过沿着消息路径经过不同的端点,SOAP 消息可从某个发送者传播到某个接收者。
并非 SOAP 消息的所有部分均打算传送到 SOAP 消息的最终端点,不过,另一个方面,也许打算传送给消息路径上的一个或多个端点。
SOAP 的 soap:actor 属性用于将 Header 元素寻址到一个特定的端点
语法
soap:actor="[URI]"
范例
<?xml version="1.0"?> <soap:Envelope xmlns:soap="http://www.w3.org/2001/12/soap-envelope" soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding"> <soap:Header> <m:Trans xmlns:m="https://www.twle.cn/tms/" soap:actor="https://www.twle.cn/appml">234</m:Trans> </soap:Header> .... </soap:Envelope>
soap:encodingStyle 属性
SOAP 的 soap:encodingStyle 属性用于定义 SOAP 消息内容的数据类型。
soap:encodingStyle 属性可出现在任何 SOAP 元素中,可以用到元素的内容及元素的所有子元素上
SOAP 消息没有默认的编码方式
语法
soap:encodingStyle="[URI]"
一般情况况下,[URI]
值为:
http://www.w3.org/2001/12/soap-encoding
范例
soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">