• webservice 两种消息格式 SoapDocumentProtocol,SoapRpcProtocol


    SOAP 格式设置选项

    两个格式设置选项为:

    • Style:适用于 SOAP 消息中 Body 元素的子元素(也可能是孙级)。此选项指定为 binding WSDL 元素(通常情况下)或 operation 元素的 style 属性。

    • Use:适用于出现在下一个级别的 Web 服务方法参数(或返回值)。此选项指定为 body 元素的 use 属性。

    有关 SOAP 规范的详细信息,请访问 W3C 网站 (http://www.w3.org/TR/SOAP)。有关 WSDL 规范的详细信息,也可以访问 W3C 网站 ()。

    Style 属性允许的值

    WSDL 允许控制总体 SOAP Body 的格式设置的 style 属性使用两个值:

    • RPC:参数(或返回值)自动放入本身的父级是 SOAP Body 元素的父元素。出现没有命名空间限定的参数或返回值。此方案在 SOAP 1.1 规范的第 7 节中介绍。指定为 style="rpc"

      对于 SOAP 请求,SOAP Body 下面的元素根据 WSDL operation 元素命名,后者对应于 Web 服务方法。该元素中的每个元素表示一个参数,根据相应的参数命名。

      对于 SOAP 响应,SOAP Body 下面的元素的名称为追加了 Response 的操作名称。下面表示返回值的元素的名称是操作名称,但是包含后缀 Return。

    • Document:SOAP Body 元素的内容在 WSDL 中完全指定为在 XML 架构定义中定义的 XML 元素。XML 架构在 WSDL 文档中指定或导入 WSDL 文档。WSDL 与参数和返回值无关;只处理 XML 文档。开发人员(尤其是 Web 服务基础结构)会关心参数和返回值如何转换为 XML 架构元素和类型。指定为 style="document"

      顶级 XML 元素指定为消息部分 -- 在 message 元素中定义的 part 元素,指向 XSD 元素声明。通常,不会包含多个部分,所以,SOAP Body 内容是真正的 XML 文档,尽管 WSDL 本身不禁止包含多个元素。

    WSDL 允许控制参数和返回值的格式设置的 use 属性使用两个值:

    • Encoded:数据根据 SOAP 1.1 规范第 5 节中所述的方案进行格式设置。SOAP 编码使用 XML 架构的一个子集在 XML 文档与其所表示的数据之间进行绑定。SOAP 编码还使用对文档中多次出现的元素的引用。指定为 use="encoded"

    • Literal:数据根据 WSDL 文档中指定的 XML 架构定义或导入 WSDL 文档的 XML 架构定义逐字进行格式设置。指定为 use="literal"

       所以才有这个注意“事项需要VS2005 默认是用的 SoapDocumentProtocol而Delphi 是使用的 SoapRpcProtocol.这会造成所以客户端传过去的字符串变

      成null,需要在生成的接口单元的INITIALIZATION 部分加上一句:InvRegistry.RegisterInvokeOptions(TypeInfo(ServiceSoap), ioDocument);”

  • 相关阅读:
    Some good websites for C++
    Static Class in C#
    js提示后跳转代码集合
    日期格式化函数
    URL伪静态
    正则的一些使用
    提高.net网站的性能
    验证DropDownList的方法
    用C#去除字符串中HTML的格式
    drepdownlist不能动态绑定数据的原因
  • 原文地址:https://www.cnblogs.com/linyawen/p/2111177.html
Copyright © 2020-2023  润新知