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

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

  WSDL Schema 现在把参数放在包装中(参阅清单 9)。

  清单 9. 用于 myMethod 的文档/文字包装的 SOAP 消息

<soap:envelope>
    <soap:body>
        <myMethod>
            <x>5</x>
            <y>5.0</y>
        </myMethod>
    </soap:body>
</soap:envelope>

  注意这个 SOAP 消息同 RPC/文字的 SOAP 消息(清单 5)非常相似。您可能会说,它看起来与 RPC/文字的 SOAP 消息是完全一样的,不过,这两种消息之间存在着微妙的区别。在 RPC/文字的 SOAP 消息中, 的 子句是操作的名称。在文档/文字包装的 SOAP 消息中, 子句是单个输入消息的组成部分引用的元素的名称。因此,包装的样式具有这样的一个特征,输入元素的名称与操作的名称是相同的。此样式是把操作名放入 SOAP 消息的一种巧妙方式。

  文档/文字包装的样式的特征有:

  输入消息只有一个组成部分。
  该部分是一个元素。
  该元素同操作有相同的名称。
  该元素的复杂类型没有属性。

  优点

  没有类型编码信息。

  soap:body 中出现的所有内容都定义在 schema 中,所以您可以很容易地检验此消息的有效性。

  方法名又出现在 SOAP 消息中。

  文档/文字是遵守 WS-I 的,并且包装模式符合了 WS-I 的限制,即 SOAP 消息的 soap:body 只有一个子元素。

  缺点

  WSDL 更加复杂。

  文档/文字包装的样式还是有一些缺点,不过与优点比起来,它们都显得微不足道。

  文档/文字的样式在哪里定义?

  这种包装类型来源于 Microsoft?。并没有任何规范来定义这个类型;因此虽然这个类型是一个好东西,但不幸的是,为了与 Microsoft 和其他公司的实现进行互操作,现在惟一的选择就是根据 Microsoft WSDL 的输出来猜测它是如何工作的。该模式已经出现了一段时间,并且业界也很好的理解了它,虽然该模式在例子中是非常明显的,但是也有一些内容不够清晰。我们希望一个独立的组织比如 WS-I 来帮助稳定和标准化这一模式。

  为什么不始终采用文档/文字包装的样式

  至此,本文已经给了您这样的一个印象,文档/文字包装的样式是最好的方法。而实际的情况往往确实如此。不过,仍然存在着一些情况,在这些情况下,您最好是换一种别的样式。

 

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

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

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

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

相关推荐