SOAP是一个基于XML的,在分散或分布式的环境中交互信息的简单协议,它主要包括:
SOAP Envelope定义一个描述消息中的内容,发送者,接受者,处理者已经如何处理的框架。
SOAP编码规则永远表示使用数据类型的示例。
SOAP RPC表示远程过程调用和应答的协定。
SOAP绑定(binding)使用底层协议交换信息。
SOAP消息一般有一个Envelope元素附带一个可选的Header元素和一个必需的Body元素组成。
<soap:Envelope
XMLns:soap=‘http://Schemas.XMLsoap.org/soap/envelope/'
soap:encodingStyle='http://Schema
<soap:Header>
<!--extensions go here-->
</soap:Header>
<soap:Body>
<!--extensions go here-->
</soap:Body>
</soap:Envelope>
SOAP的消息结构
SOAP是利用XML来定义的分布式计算环境中交互的信息的协议,也就是说SOAP消息是用XML来编码的。SOAP将方法调用参数保存为二进制格式,将这些参数作为XML信息传递到服务器,然后,服务器上相应的SOAP处理程序提前XML信息,并将它恢复为二进制形式进行处理的。
SOAP Envelope的语法规则:
元素名为Envelope,该元素在SOAP消息中出现。
该元素可以包含明明空间生命和额外的属性。
类似的,该元素可以包含子元素。
SOAP Header:
Header元素作为SOAP Envelope XML文档的一个直接的之元素。Header的所有子元素都必需是完整修饰,是一个命名空间URI和局部名组成。
SOAP encodingStyle属性永远指明Header条目的编码风格,mustUnderstand属性和actor属性永远指明如何处理条目和由谁来处理该条目。
设置Header属性为了让消息介绍则知道如何处理该消息。一个生成SOAP消息的SOAP应用程序应该仅使用SOAP Header元素的直接子元素的SOAP Header属性,对于那些并非作为SOAP Header元素的子元素出现的。SOAP消息的接受则必需护绿。
SOAP Body
SOAP Body元素提供一个简单的永远与消息的最终接收者交换信息的机制。Body元素的典型应用包含RPC调用和错误报告。