Chinaunix首页 | 论坛 | 博客
  • 博客访问: 29956891
  • 博文数量: 2065
  • 博客积分: 10377
  • 博客等级: 上将
  • 技术积分: 21525
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-04 17:50
文章分类

全部博文(2065)

文章存档

2012年(2)

2011年(19)

2010年(1160)

2009年(969)

2008年(153)

分类: 系统运维

2009-11-13 12:00:45

SOAP 是一种简单的基于 XML 的协议,它使应用程序通过 HTTP 来交换信息。

在我们的 SOAP 教程中,你将了解到什么是 SOAP,以及它如何在应用程序之间交换信息。

Microsoft 和 SOAP

SOAP 是微软 .net 架构的关键元素,用于未来的因特网应用程序开发。

SOAP 构建模块

一条 SOAP 消息就是一个普通的 XML 文档,包含下列元素:

  • 必需的 Envelope 元素,可把此 XML 文档标识为一条 SOAP 消息
  • 可选的 Header 元素,包含头部信息
  • 必需的 Body 元素,包含所有的调用和响应信息
  • 可选的 Fault 元素,提供有关在处理此消息所发生错误的信息

语法规则

这里是一些重要的语法规则:

  • SOAP 消息必须用 XML 来编码
  • SOAP 消息必须使用 SOAP Envelope 命名空间
  • SOAP 消息必须使用 SOAP Encoding 命名空间
  • (都是放在根元素目录下面的!)
  • SOAP 消息不能包含 DTD 引用
  • SOAP 消息不能包含 XML 处理指令

SOAP 消息的基本结构


Envelope 必须要包含这个命名空间进来!~
xmlns:soap=""
soap:encodingStyle="">


...
...



...
...

...
...





可选的 SOAP Header 元素包含头部信息。
可选的 SOAP Header 元素可包含有关 SOAP 消息的应用程序专用信息(比如认证、支付等)。
如果 Header 元素被提供,则它必须是 Envelope 元素的第一个子元素。

actor 属性

通过沿着消息路径经过不同的端点,SOAP 消息可从某个发送者传播到某个接收者。并非 SOAP 消息的所有部分均打算传送到 SOAP 消息的最终端点,不过,另一个方面,也许打算传送给消息路径上的一个或多个端点。

SOAP 的 actor 属性可被用于将 Header 元素寻址到一个特定的端点。

语法

soap:actor="URI"

mustUnderstand 属性

SOAP 的 mustUnderstand 属性可用于标识标题项对于要对其进行处理的接收者来说是强制的还是可选的。

假如您向 Header 元素的某个子元素添加了 "mustUnderstand="1",则它可指示处理此头部的接收者必须认可此元素。假如此接收者无法认可此元素,则在处理此头部时必须失效。

语法

soap:mustUnderstand="0|1"


强制使用的 SOAP Body 元素包含实际的 SOAP 消息。

SOAP Body 元素

必需的 SOAP Body 元素可包含打算传送到消息最终端点的实际 SOAP 消息。

(传送的SOAP)


SOAP Fault 元素

可选的 SOAP Fault 元素用于存留 SOAP 消息的错误和状态信息。

SOAP 的 Fault 元素用于下列子元素:

子元素 描述
供识别故障的代码
可供人阅读的有关故障的说明
有关是谁引发故障的信息
存留涉及 Body 元素的应用程序专用错误信息

SOAP HTTP Binding

SOAP 方法指的是遵守 SOAP 编码规则的 HTTP 请求/响应。

HTTP + XML = SOAP

SOAP 请求可能是 HTTP POST 或 HTTP GET 请求。

HTTP POST 请求规定至少两个 HTTP 头:Content-Type 和 Content-Length。


SOAP 请求:

POST /InStock HTTP/1.1
Host:
Content-Type: application/soap+xml; charset=utf-8
Content-Length: nnn


xmlns:soap=""
soap:encodingStyle="">


  
IBM
    



发送了一个什么格式的数据请求过去了就会返回什么样的数据格式回来!

SOAP 响应:

HTTP/1.1 200 OK Content-Type: application/soap+xml; charset=utf-8 Content-Length: nnn 34.5

就会得到这样的一个响应回来的!

(将来全部的服务都走WEB服务的方式。接口调用非常方便!)







阅读(1492) | 评论(1) | 转发(0) |
0

上一篇:mysql 中 时间和日期函数

下一篇:WSDL 教程

给主人留下些什么吧!~~

chinaunix网友2009-11-13 18:06:49

向马云学习!就算输也要去做!