我应该使用哪种样式的 WSDL 呢(二)

日期: 2007-12-17 作者:Russell Butek 来源:TechTarget中国

  清单 3. 用于 myMethod 的 RPC/编码的 SOAP 消息

  <soap:envelope>
    <soap:body>
        <myMethod>
            <x xsi_type="xsd:int">5</x>
            <y xsi_type="xsd:float">5.0</y>
        </myMethod>
    </soap:body>
</soap:envelope>

  关于 RPC/编码例子中的 WSDL 和 SOAP 消息有一些需要注意的地方:

  优点

  WSDL 尽可能的简单明了。

  操作名出现在消息中,因此接收者可以很容易的将消息分派到操作的实现。

  缺点

  类型编码信息(xsi:type="xsd:int")通常就是降低吞吐量性能的开销。

  你不能很容易的验证这个消息的有效性,因为只有 5 和 5.0 行包含 Schema 中定义的内容;soap:body 内容的其余部分来自于 WSDL 定义。
  虽然它是合法的 WSDL,但 RPC/encoded 是不遵守 WS-I 的。

  有没有一种方法可以取其精华,弃其糟粕呢?可能有。让我们看一下 RPC/文字样式。

  RPC/文字

  用于这个方法的 RPC/文字样式的 WSDL 看起来与 RPC/编码的 WSDL(清单 4)几乎一样。绑定的用法从 编码 变为 文字。仅此而已。

  清单 4. 用于 myMethod 的 RPC/文字样式的 WSDL

<message name="myMethodRequest">
    <part name="x" type="xsd:int"/>
    <part name="y" type="xsd:float"/%gt;
</message>
<message name="empty"/>

<portType name="PT">
    <operation name="myMethod">
        <input message="myMethodRequest"/>
        <output message="empty"/>
    </operation>
</portType>

<binding …/> 
<!– I won’t bother with the details, just assume it’s RPC/literal. –>

 

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

相关推荐