首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么WSDL引入wsdl:message?

为什么WSDL引入wsdl:message?
EN

Stack Overflow用户
提问于 2010-11-27 10:35:24
回答 2查看 2.5K关注 0票数 4

为什么WSDL引入wsdl:message?和消息部分呢?

与在操作参数(输入、输出、故障)中直接使用XSD相比,它们能带来什么优势?

它们(带有wsdl消息部分的wsdl消息)如何比XSD更抽象?

为什么不这样组织,例如:

代码语言:javascript
复制
<operation name="GetEndorsingBoarder"> 
  <input type="xsd:string"/> 
  <output type="xsd:string, xsd:int, xsd:boolean"/> 
  <fault "type="xsd:string""/> 
</operation>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-11-27 21:31:10

我明白了:

消息不仅仅指定操作的参数。

消息及其部分在绑定中被引用。应该可以以不同的方式绑定不同的部分:

代码语言:javascript
复制
<message name="m1">
    <part name="body" element="tns:GetCompanyInfo"/>
</message>

<message name="m2">
    <part name="body" element="tns:GetCompanyInfoResult"/>
    <part name="docs" type="xsd:string"/>
    <part name="logo" type="tns:ArrayOfBinary"/>
</message>

<portType name="pt1">
    <operation name="GetCompanyInfo">
       <input message="m1"/>
       <output message="m2"/>
    </operation>
</portType>

 <binding name="b1" type="tns:pt1">
        <operation name="GetCompanyInfo">
           <soap:operation soapAction="http://example.com/GetCompanyInfo"/>
           <input>
               <soap:body use="literal"/>
           </input>
           <output>
               <mime:multipartRelated>
                   <mime:part>
                       <soap:body parts="body" use="literal"/>
                   </mime:part>
                   <mime:part>
                       <mime:content part="docs" type="text/html"/>
                   </mime:part>
                   <mime:part>
                       <mime:content part="logo" type="image/gif"/>
                       <mime:content part="logo" type="image/jpeg"/>
                   </mime:part>
               </mime:multipartRelated>
           </output>
        </operation>
    </binding>

我错过了这一点,因为“非SOAP的‘文字’”绑定是非常罕见的。

票数 1
EN

Stack Overflow用户

发布于 2010-11-27 10:49:17

XSD描述DATA方面,例如web服务调用的数据方面,而WSDL描述web服务的目的(方法调用)。通常情况下,您不能仅从数据中找出方法调用。

Generating a WSDL from an XSD file上查看Cheeso和Marc answers

编辑:source

message描述了在web服务的提供者和使用者之间交换的数据,每个web服务都有两条消息: 1)输入: web服务的参数2)输出:从web服务返回数据

每个message都有零个或多个part参数( web服务函数的每个参数一个),每个part参数都与types容器元素中定义的一个具体类型相关联。

代码语言:javascript
复制
   <message name="SayHelloRequest">
      <part name="firstName" type="xsd:string"/>
   </message>
   <message name="SayHelloResponse">
      <part name="greeting" type="xsd:string"/>
   </message>

这里定义了两个消息元素。第一个表示请求消息SayHelloRequest,第二个表示响应消息SayHelloResponse。

这些消息中的每一个都包含一个单独的part元素。对于请求,该部分指定了函数参数;在本例中,我们指定了一个firstName参数。对于响应,该部分指定函数返回值;在本例中,我们指定单个问候返回值。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4289817

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档