首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > XML SOAP >

SOAP1.2学习札记(转)

2012-12-18 
SOAP1.2学习笔记(转)SOAP,简单对象访问协议,是一种基于XML的,用于在计算机之间交换信息的协议。SOAP一般包

SOAP1.2学习笔记(转)

SOAP,简单对象访问协议,是一种基于XML的,用于在计算机之间交换信息的协议。

SOAP一般包含一个强制性Envelope元素,一个可选的Header元素,一个强制性的Body元素。?

SOAP1.2学习札记(转)

?1.Envelope

这是SOAP的根元素,SOAP的版本一般要在这里声明。以下是1.2名称空间的地址

?SOAP1.2学习札记(转)SOAP1.2学习札记(转)
    <SOAP-ENV:Envelope xmlns:SOAP-ENV=http://schemas.xmlsoap.org/soap/envelope/

    ?

    2.Header

    这个框架主要是为身份验证,事务管理和支付授权提供一个开放的机制。

    目前主要有以下几个属性:

    role属性:定义了SOAP结点是否需要处理某个Header Block.

    ????????? none:表示该Header Block不能被任何SOAP结点处理

    ????????? next:应该被每一个结点处理。

    ????????? ultimateReceiver:只有最后一个接收者才能处理

    MustUnderstand属性:规定SOAP结点是否必须处理某个Header Block.如果不能处理则要求返回一个错误信息。?????

    ?relay属性:规定Header? Block是否应该被继续传递下一个SOAP结点。一般的SOAP结点在处理完一个Header Block后,应该将它从所在的SOAP消息中删除。

    SOAP消息的处理过程如下:

    SOAP结点招收到一条SOAP消息; SOAP结点根据SOAP消息中Header元素的role属性值,确定它可以处理的Header? Block集合; 在这些可以处理的Header Block集合中,SOAP结点进一步确定哪些是必须处理的,也就是mustUnderstand属性值为true的Header Block集合; SOAP结点处理消息。如果该结点不能处理必须处理的消息,则返回一条错误信息,对于可选的Header Block,该结点可以处理也可以忽略; 所有被处理和被忽略的Header Block将被删除,除非其relay属性值为真。该SOAP结点也可以根据需要,在该SOAP消息中插入一些新的Header Block; 转发该SOAP消息给下一个SOAP结点

    3.Body

    主要用来存储消息的内容,取决于具体的消息。有一个预定义的Falt元素,在服务处理请求出错时,出错消息被包装在Falut元素中,返回给请求方。Fault元素必须包含两个子元素:Code和Reason元素,另外三个可选的:Detail,Node,Role元素。Code元素又包括一个必须的Value元素和一个可选的Subcode元素。Value元素的值可以是下面预定义5个可能的错误代码之一:

    VersionMismatch:版本不匹配

    MustUnderstand:SOAP结点不能处理SOAP消息中某个必须处理的结点

    DataEncodingUnknown:SOAP结点不能处理SOAP消息的数据编码

    Sender:SOAP结点接收到的SOAP消息格式不正确

    Receiver:SOAP结点不能处理该SOAP消息


    SOAP1.2学习札记(转)
    ?

    SOAP协议支持两种编程风格,分别为文档风格和RPC方格。

    使用文档风格时,SOAP消息中的Body元素包含需要被该服务处理的业务文档(推荐)

    使用RPC风格时,Body元素则包含被调用方法的名字及其参数。

    ?SOAP1.2定义了两种与HTTP协议绑定的方式,分别为HTTP的GET和POST方法

    ?

热点排行