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

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

  用于这个 WSDL 的 SOAP 消息如清单 7 所示:

  清单 7. 用于 myMethod 的文档/文字 SOAP 消息

<soap:envelope>
    <soap:body>
        <xElement>5</xElement>
        <yElement>5.0</yElement>
    </soap:body>
</soap:envelope>

  优点

  没有类型编码信息。

  您可以在最后用任何 XML 检验器检验此消息的有效性。soap:body 里面的所有内容都定义在 schema 中。

  文档/文字是遵循 WS-I 的,但是有限制(参阅缺点)。

  缺点

  WSDL 有一点复杂。不过,这是一个非常小的缺点,因为 WSDL 并没有打算由人来读取。
  SOAP 消息中缺少操作名。而如果没有操作名,发送就可能比较困难,并且有时变得不可能。
  WS-I 仅仅允许 SOAP 消息中 soap:body 的一个子元素。正如你在清单 7 中所见的那样,该消息的 soap:body 有两个子元素。

  文档/文字样式似乎只是重新排列了一下 RPC/文字模型中的优点和缺点。你可以验证该消息,但是你已经失去了操作名。有没有什么办法可以改进这一点呢?是的,它就是文档/文字包装模式。

  文档/文字包装模式

  在我描述文档/文字包装模式的规则之前,让我先向您展示 WSDL 和 SOAP 消息,如清单 8 和 清单 9 所示。

  清单 8. 用于 myMethod 的文档/文字封装的 WSDL。

<types>
    <schema>
        <element name="myMethod">
            <complexType>
                <sequence>
                    <element name="x" type="xsd:int"/>
                    <element name="y" type="xsd:float"/>
                </sequence>
            </complexType>
        </element>
        <element name="myMethodResponse">
            <complexType/>
        </element>
    </schema>
</types>
<message name="myMethodRequest">
    <part name="parameters" element="myMethod"/>
</message>
<message name="empty">
    <part name="parameters" element="myMethodResponse"/>
</message>

<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 document/literal. –>

 

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

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

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

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

相关推荐