第121章 查询关键字 - Private
指定查询是否为私有查询。
用法
要指定此查询为私有查询,请使用以下语法:
代码语言:javascript复制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方法
使用RP
C(远程过程调用)风格的调用。
使用这种绑定样式,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 ]
或以下:
代码语言:javascript复制Query MyQuery() [ SoapNameSpace = othervalue, WebMethod ]
但以下情况并非如此:
代码语言:javascript复制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
方法关键字的条目。