文章
· 八月 19, 2021 阅读大约需 4 分钟

查询关键字Private,SoapBindingStyle,SoapBodyUse,SoapNameSpace

第121章 查询关键字 - Private

指定查询是否为私有查询。

用法

要指定此查询为私有查询,请使用以下语法:

Query name(formal_spec) As classname [ Private ] {    //implementation }

否则,请省略此关键字或将该词放在该关键字之前。

详解

私有类成员只能由同一类(或其子类)的其他成员使用。请注意,其他语言通常使用单词Protected来描述这种可见性,使用单词Private来表示从子类不可见。

默认

如果省略此关键字,则此查询不是私有的。

第122章 查询关键字 - SoapBindingStyle

指定此查询用作Web方法时使用的绑定样式或SOAP调用机制。仅适用于定义为Web服务Web客户端的类。

用法

要覆盖查询使用的默认绑定样式(当它用作Web方法时),请使用以下语法:

Query name(formal_spec) As classname [ WebMethod, SoapBindingStyle = soapbindingstyle ] {    //implementation }

其中soapbindingstyle为下列值之一:

  • document - 此Web方法使用文档式调用。

使用这种绑定样式,SOAP消息被格式化为文档,并且通常只有一个部分。

SOAP消息中,<Body>元素通常包含单个子元素。<Body>元素的每个子元素对应一个消息部分。

  • rpc - 此Web方法使用RPC(远程过程调用)风格的调用。

使用这种绑定样式,SOAP消息被格式化为具有多个部分的消息。

SOAP消息中,<Body>元素包含一个子元素,其名称取自相应的操作名称。此元素是生成的包装元素,它为方法的参数列表中的每个参数包含一个子元素。

重要提示:对于手动创建的Web服务,此关键字的默认值通常比较合适。当使用SOAP向导从WSDL生成Web客户端服务时,InterSystems IRIS会将此关键字设置为适用于该WSDL;如果修改此值,Web客户端或服务可能不再工作。

详情

此关键字允许指定此查询在作为Web方法调用时使用的绑定样式。

对于给定查询,此关键字覆盖SoapBindingStyle类关键字。

默认

如果忽略此关键字,<soap:operation>元素的style属性将由SoapBindingStyle类关键字的值决定。

WSDL的关系

(请注意,与方法关键字和查询关键字相比,同名的class关键字WSDL的影响更大。)

对SOAP消息的影响

有关信息,请参阅SoapBindingStyle类关键字的条目。

第123章 查询关键字 - SoapBodyUse

指定该查询用作web方法时,输入和输出使用的编码。
仅应用于定义为web服务web客户端的类。

用法

要覆盖查询的输入和输出使用的默认编码(当它被用作web方法时),请使用以下语法:

Query name(formal_spec) As classname [ WebMethod, SoapBodyUse = encoded ] {    //implementation }

其中,soapbodyuse是下列值之一:

  • literal - 这个web方法使用文字数据。
    也就是说,SOAP消息的<Body>中的XMLWSDL中给出的模式完全匹配。
  • encoded = 这个web方法使用soap编码的数据。
    也就是说,SOAP消息的<Body>中的XML根据所使用的SOAP版本使用适当的SOAP编码,满足以下规范的要求:

重要提示:对于手工创建的web服务,这个关键字的默认值通常是合适的。
当使用SOAP向导从WSDL生成web客户端或服务时, IRIS将此关键字设置为适合该WSDL的;
如果修改了该值,web客户端或服务可能不再工作。

详解

该关键字允许您指定该查询作为web方法调用时的输入和输出的编码。

对于给定的查询,此关键字覆盖SoapBodyUse类关键字。

默认

如果忽略此关键字,则使用SoapBodyUse类关键字的值。

与WSDL的关系以及对SOAP消息的影响

有关信息,请参阅SoapBodyUse类关键字的条目。

第124章 查询关键字 - SoapNameSpace

WSDL中的绑定操作级别指定名称空间。
仅应用于定义为web服务web客户端的类。

用法

要在绑定操作级别覆盖默认命名空间(当查询被用作web方法时),请使用以下语法:

Query name(formal_spec) As classname [ SoapNameSpace = "soapnamespace", WebMethod ] {    //implementation }

其中,soapnamespace是一个名称空间URI
注意,如果URI包含冒号(:),则字符串必须用引号括起来。
也就是说,你可以使用以下方法:

Query MyQuery() [ SoapNameSpace = "http://www.mynamespace.org", WebMethod ] 

或以下:

Query MyQuery() [ SoapNameSpace = othervalue, WebMethod ] 

但以下情况并非如此:

Query MyQuery() [ SoapNameSpace = http://www.mynamespace.org, WebMethod ] 

重要提示:对于手工创建的web服务,这个关键字的默认值通常是合适的。
当使用SOAP向导从WSDL生成web客户端或服务时, IRIS将此关键字设置为适合该WSDL的;
如果修改了该值,web客户端或服务可能不再工作。

详解

该关键字允许指定查询作为web方法调用时使用的XML名称空间。

注意:此关键字仅在查询使用rpc样式绑定时有效。
也就是说,查询(或包含它的类)必须用等于rpcSoapBindingStyle标记。
(如果为使用文档样式绑定的查询指定此关键字,则WSDL将不是自一致的。)

默认

如果忽略此关键字,则web方法位于由web服务或客户端类的namespace参数指定的命名空间中。

与WSDL的关系以及对SOAP消息的影响

有关信息,请参阅SoapNameSpace方法关键字的条目。

讨论 (0)1
登录或注册以继续