封装版本模型 SOAP没有定义常规的基于主版本号和辅版本号的 版本形式。SOAP消息必须有一个封装元 素与名域 "http://schemas.xmlsoap.org/soap/envelope/" 联。如果SOAP应用程序接收到的SOAP消息中的 SOAP封装元素与其他的名域关联,则视为版本 错误,应用程序必须丢弃这个消息。,如果消息是 通过HTTP之类的请求应答协议收到的,应用程 序必须▣答一个SOAP VersionMismatch错误信 息
封装版本模型 SOAP没有定义常规的基于主版本号和辅版本号的 版本形式。SOAP消息必须有一个封装元 素与名域 "http://schemas.xmlsoap.org/soap/envelope/"关 联。如果SOAP应用程序接收到的SOAP消息中的 SOAP封装元素与其他的名域关联,则视为版本 错误,应用程序必须丢弃这个消息。如果消息是 通过HTTP之类的请求/应答协议收到的,应用程 序必须回答一个SOAP VersionMismatch 错误信 息
Envelope元素 Envelope元素始终是SOAP消息的根元素。这就 便于应用程序识别“SOAP消息”一只要检查一 下根元素的名称即可。通过检查Envelope元素 的命名空间,应用程序也可确定所使用的SOAP 版本 c Envelope元素包含一个可选的Header元素,后跟 一个必要的Body元素。,Body,元素代表了该消 息的有效内容。它是一种通用容器,因为它可包 含来自任何命名空间的任意数量的元素。这就是 试图发送数据的最终目的地
Envelope元素 Envelope元素始终是 SOAP 消息的根元素。 这就 便于应用程序识别“SOAP 消息” — 只要检查一 下根元素的名称即可。 通过检查 Envelope 元素 的命名空间,应用程序也可确定所使用的 SOAP 版本。 Envelope元素包含一个可选的 Header 元素,后跟 一个必要的 Body 元素。 Body 元素代表了该消 息的有效内容。 它是一种通用容器,因为它可包 含来自任何命名空间的任意数量的元素。 这就是 试图发送数据的最终目的地
例子: 在银行帐户之间转帐的请求信息:request..xml 相应的响应信息:response.ml
例子: 在银行帐户之间转帐的请求信息: request.xml 相应的响应信息: response.xml
Faut元素 该消息处理框架还定义了一个名为Faut的元素, 用于在发生错误时在Boy元素中表示错误。这 是不可缺少的,因为如果没有一种标准的错误表 示方法,每个应用程序将不得不自己创建,从而 使得通用基础结构不可能区分成功和失败。以下 示例SOAP消息中包含了一个Faut元素,指明 在处理该请求时发生了“Insufficient Funds(资 金不足)”错误:fault.xml
Fault元素 该消息处理框架还定义了一个名为Fault 的元素, 用于在发生错误时在 Body 元素中表示错误。 这 是不可缺少的,因为如果没有一种标准的错误表 示方法,每个应用程序将不得不自己创建,从而 使得通用基础结构不可能区分成功和失败。 以下 示例 SOAP 消息中包含了一个 Fault 元素,指明 在处理该请求时发生了“Insufficient Funds(资 金不足)”错误:fault.xml
Fault元素 Fault元素必须包含一个faultcode,后跟一个 faultstring元素。faultcode元素使用一种符合命名空间 的名称对错误进行分类,而faultstring元素提供一种对错 误可读的解释(类似于HTTP的工作方式)。表2简要 地说明了SOAP1.1所定义的各种错误码(所有这些代码 都包含在http://schemas.xmlsoap.org/soap/envelope/ 命名空间中)。 ■ Faut元素也可能包含一个detail元素,以便提供该错误 的细节,这样可以帮助客户端诊断问题,特别是在Client 和Server错误码的情况下
Fault元素 Fault 元素必须包含一个 faultcode,后跟一个 faultstring 元素。 faultcode 元素使用一种符合命名空间 的名称对错误进行分类,而 faultstring 元素提供一种对错 误可读的解释(类似于 HTTP 的工作方式)。 表 2 简要 地说明了 SOAP 1.1 所定义的各种错误码(所有这些代码 都包含在 http://schemas.xmlsoap.org/soap/envelope/ 命名空间中)。 Fault 元素也可能包含一个 detail 元素,以便提供该错误 的细节,这样可以帮助客户端诊断问题,特别是在 Client 和 Server 错误码的情况下