首页 > 代码库 > SOAP 格式设置选项

SOAP 格式设置选项

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);”

SOAP 格式设置选项