查询关键字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>中的XML与WSDL中给出的模式完全匹配。encoded= 这个web方法使用soap编码的数据。 也就是说,SOAP消息的<Body>中的XML根据所使用的SOAP版本使用适当的SOAP编码,满足以下规范的要求:SOAP 1.1(https://www.w3.org/TR/2000/NOTE-SOAP-20000508/)SOAP 1.2(https://www.w3.org/TR/soap12-part2/)
重要提示:对于手工创建的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样式绑定时有效。
也就是说,查询(或包含它的类)必须用等于rpc的SoapBindingStyle标记。
(如果为使用文档样式绑定的查询指定此关键字,则WSDL将不是自一致的。)
默认
如果忽略此关键字,则web方法位于由web服务或客户端类的namespace参数指定的命名空间中。
与WSDL的关系以及对SOAP消息的影响
有关信息,请参阅SoapNameSpace方法关键字的条目。