两个格式设置选项为:
Style:适用于 SOAP 消息中 Body 元素的子元素(也可能是孙级)。此选项指定为 binding WSDL 元素(通常情况下)或 operation 元素的 style 属性。
Use:适用于出现在下一个级别的 Web 服务方法参数(或返回值)。此选项指定为 body 元素的 use 属性。
有关 SOAP 规范的详细信息,请访问 W3C 网站 (http://www.w3.org/TR/SOAP)。有关 WSDL 规范的详细信息,也可以访问 W3C 网站 ()。
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);”
原文:http://www.cnblogs.com/wangyonglong/p/5982759.html