SOAP(Simple Object Access Protocol,简单对象访问协议)是交换数据的一种协议规范,是一种轻量的、简单的、基于XML(标准通用标记语言下的一个子集)的协议,它被设计成在WEB上交换结构化的和固化的信息。
SOAP、WSDL(WebServicesDescriptionLanguage,WebService描述语言)、UDDI(UniversalDescriptionDiscovery andIntegration,统一描述发现集成)是WebService三要素,soap用来描述传递信息的格式, WSDL 用来描述如何访问具体的接口, uddi用来管理,分发,查询webService 。
SOAP的四个部分-
SOAP封装(envelop),它定义了一个框架,描述消息中的内容是什么,是谁发送的,谁应当接受并处理它以及如何处理它们;
-
SOAP编码规则(encoding rules),它定义了一种序列化机制,用于表示应用程序需要使用的数据类型的实例;
-
SOAP RPC表示(RPC representation),它定了一个协定,用于表示远程过程调用和应答;
-
SOAP绑定(binding),它定义了SOAP使用哪种协议交换信息。使用HTTP/TCP/UDP协议都可以。
构建模块
一条 SOAP 消息就是一个普通的 XML 文档,包含下列元素:
-
必需的 Envelope 元素,可把此 XML 文档标识为一条 SOAP 消息
-
可选的 Header 元素,包含头部信息
-
必需的 Body 元素,包含所有的调用和响应信息
-
可选的 Fault 元素,提供有关在处理此消息所发生错误的信息
这里是一些重要的语法规则:
-
SOAP 消息必须用 XML 来编码
-
SOAP 消息必须使用 SOAP Envelope 命名空间
-
SOAP 消息必须使用 SOAP Encoding 命名空间
-
SOAP 消息不能包含 DTD 引用
-
SOAP 消息不能包含 XML 处理指令