首页 > 服务器 > Win服务器 > 正文

解析Web接口描述语言WSDL(5)

2024-09-10 00:02:23
字体:
来源:转载
供稿:网友
3)soap:body

  soap:body元素指出了消息部分应如何在SOAP Body元素中表现。

  消息的各个部分可以是抽象的类型定义,也可以是具体的模式定义。如果是抽象定义,根据编码格式定义的一套规则将对类型进行序列化。使用URI列表可以对每种编码格式进行标识,就象在SOAP规范中的那样。由于某些编码格式如SOAP编码允许某种给定的抽象类型的消息格式发生变化,那么读者应理解所有的格式变化:"读者决定正确性"。为了避免对所有变化不必要的支持,可以对消息的定义具体化,然后暗示它的原始编码格式(如果存在)。在这种情况下,消息的创建者必须严格遵循特定的规范:"作者决定正确性"。

  soap:body提供的信息用于决定如何在SOAP消息的Body元素中组合不同的消息部分。soap:body元素可以用在面向RPC的消息也可以用在面向文档的消息中,但是封装操作的格式对Body节如何构建有重要影响:

  如果操作格式是RPC,那么每个部分将是一个参数,或者是一个返回值,并且它们出现在body中的wrapper元素内。wrapper元素的名字与操作的名字相同,并且它的名称空间是namespace属性的值。每个消息部分(参数)在封装器下出现,它是由与调用中相应参数名称相同的存储器表示的。各部分以与调用参数相同的顺序进行排列。

  如果操作格式是文档,那么就没有额外的封装器(wrappers),消息的parts直接出现在SOAP Body元素中。

  在定义Body的内容和参数存储器元素时使用了相同的机制。

  4)soap:header

  soap:header元素允许在SOAP封装的头元素中对将要传送的头进行定义。它模拟了soap:body元素。并不需要使用soap:header费力地列出出现在SOAP封装中的所有头元素。例如,对WSDL的扩展暗示特定的头应加入到实际的有效负荷中,此时就不需要列出所有的头。

  5)soap:fault

  soap:fault元素指出了SOAP Fault Details元素的内容,它模仿了soap:body元素。

  6)soap:address

  SOAP地址绑定用于为端口指定地址。使用SOAP绑定的端口必须指定一个确切的地址,为地址指定的URI配制必须与soap:binding指定的传输相对应。

  2、 HTTP GET 与 POST 绑定

  为了描述Web浏览器与网站间的交互作用,WSDL包含了HTTP 1.1的 GET 和 POST版本的绑定。这种绑定允许应用程序而不浏览器与网站进行交互。可以指定下面的协议特定信息:

  使用了HTTP GET 或 POST绑定的标记
  端口地址
  每种操作的相对地址(相对于端口定义的基地址)

  HTTP GET/POST绑定使用下列元素扩展WSDL:(注意黑体标注)

<definitions .... >
<binding .... >
<http:binding verb="nmtoken"/>…1
<operation .... >
<http:operation location="uri"/>…2
<input .... >
<-- mime elements -->
</input>
<output .... >
<-- mime elements -->
</output>
</operation>
</binding>
<port .... >
<http:address location="uri"/>…3
</port>
</definitions>

  1)http:binding

  http:binding元素指出此绑定使用了HTTP协议。必需的Verb属性的值指出了HTTP的版本,其值通常是GET或POST,但也可以使用其它值。注意,HTTP版本是大小写敏感的。

  2)http:operation

  Location属性为操作指定一个相对URI,此URI与http:address元素指定的URI结合在一起形成了HTTP请求的完整路径。此URI必须是一个相对的URI。

  3)http:address

  location属性为端口指定了基地址。其值是与http:operation绑定元素的位置(location)属性的值结合在一起的。

  4)http:urlEncoded

  UrlEncoded元素指出所有的消息part都按照标准的URI编码规则(名字=值…)编码进HTTP请求URI中。参数名与消息part的名相对应。使用"名字=值"对对part提供的值进行编码。通常使用GET指示URL编码,或使用POST指示一个FORM-POST。对于GET,字符"?"作为必需,将自动追加。

  <http:urlEncoded/>

  5)http:urlReplacement

  http:urlReplacement元素指出所有的消息part都使用替代运算法则被编码进HTTP请求URI中:
  http:operation 的相对URI值用于搜索一组探索方案。
  在http:operation的值与http:address的位置属性的值结合前开始搜索。
  每个消息part有一个搜索方式。搜索方式字符串是附加了"("和")"的消息part 的名字。对每个匹配,相应消息part的值在匹配处替代匹配。
  匹配检查在任何值被替代前执行(已经替代的值不会引发另外的匹配检查)。
  消息part不能有重复值。
  <http:urlReplacement/>

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表