为什么WSDL引入wsdl:message?和消息部分呢?
与在操作参数(输入、输出、故障)中直接使用XSD相比,它们能带来什么优势?
它们(带有wsdl消息部分的wsdl消息)如何比XSD更抽象?
为什么不这样组织,例如:
<operation name="GetEndorsingBoarder">
<input type="xsd:string"/>
<output type="xsd:string, xsd:int, xsd:boolean"/>
<fault "type="xsd:string""/>
</operation>发布于 2010-11-27 21:31:10
我明白了:
消息不仅仅指定操作的参数。
消息及其部分在绑定中被引用。应该可以以不同的方式绑定不同的部分:
<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的‘文字’”绑定是非常罕见的。
发布于 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容器元素中定义的一个具体类型相关联。
<message name="SayHelloRequest">
<part name="firstName" type="xsd:string"/>
</message>
<message name="SayHelloResponse">
<part name="greeting" type="xsd:string"/>
</message>这里定义了两个消息元素。第一个表示请求消息SayHelloRequest,第二个表示响应消息SayHelloResponse。
这些消息中的每一个都包含一个单独的part元素。对于请求,该部分指定了函数参数;在本例中,我们指定了一个firstName参数。对于响应,该部分指定函数返回值;在本例中,我们指定单个问候返回值。
https://stackoverflow.com/questions/4289817
复制相似问题