第八十一章 方法关键字 - SoapRequestMessage
方法 关键字 第八
2023-09-11 14:15:36 时间
文章目录
-
第八十一章 方法关键字 - SoapRequestMessage - 用法
- 详解
- 与WSDL的关系
- 对Message的影响
第八十一章 方法关键字 - SoapRequestMessage
当多个web方法
具有相同的SoapAction
时使用此方法。
在默认场景中,该关键字指定请求消息的SOAP
正文中的顶级元素的名称。
仅适用于定义为web服务
或web客户端
的类。
用法
要在请求消息的SOAP
体中指定顶级元素的名称,请使用以下语法:
Method name(formal_spec) As returnclass [ WebMethod, SoapAction = "MyAct", SoapRequestMessage="MyReqMessage" ]
{ //implementation }
其中soaprequestmessage
是有效的XML标识符。
详解
注意:此关键字仅对包装的文档/文字document/literal
消息有效。
对于包装的文档/文字消息,该关键字指定请求消息的SOAP
主体中的顶部元素的名称。(默认情况下,包装文档/文字消息。
如果对同一web服务
中的多个web方法
使用相同的SoapAction
值,请指定此关键字。否则,一般不需要这个关键字。
与WSDL的关系
SoapRequestMessage
关键字影响web服务
的WSDL
的<Message>
部分。例如,考虑以下web方法:
Method Add(a as %Numeric,b as %Numeric) As %Numeric [ SoapAction = MyAct,SoapRequestMessage=MyReqMessage, WebMethod ]
{
Quit a + b
}
对于这个web服务,WSDL包含以下内容:
<message name="AddSoapIn">
<part name="parameters" element="s0:MyReqMessage"/>
</message>
<message name="AddSoapOut">
<part name="parameters" element="s0:AddResponse"/>
</message>
这些元素在<types>
部分中相应地定义。
默认情况下,如果方法没有指定SoapRequestMessage
关键字,<message>
部分将改为如下所示:
<message name="AddSoapIn">
<part name="parameters" element="s0:Add"/>
</message>
<message name="AddSoapOut">
<part name="parameters" element="s0:AddResponse"/>
</message>
如果使用SOAP
向导从WSDL
IRIS web服务
或客户端, IRIS将此关键字设置为适合该WSDL的。
对Message的影响
对于前面显示的web方法
,web服务
需要以下形式的请求消息:
<?xml version="1.0" encoding="UTF-8" ?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV='http://schemas.xmlsoap.org/soap/envelope/'
xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:s='http://www.w3.org/2001/XMLSchema'>
<SOAP-ENV:Body>
<MyReqMessage xmlns="http://www.myapp.org"><a>1</a><b>2</b></MyReqMessage>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
相反,如果该方法没有指定SoapRequestMessage
关键字,则该消息将如下所示:
<?xml version="1.0" encoding="UTF-8" ?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV='http://schemas.xmlsoap.org/soap/envelope/'
xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:s='http://www.w3.org/2001/XMLSchema'>
<SOAP-ENV:Body>
<Add xmlns="http://www.myapp.org"><a>1</a><b>2</b></Add>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
相关文章
- ruby创建某些“关键字”方法别名的语法
- shiro+redis多次调用doReadSession方法的解决方案
- 改善JAVA代码01:考虑静态工厂方法代替构造器
- 蓝桥杯 算法提高 11-1实现strcmp函数 (JAVA方法)
- python判断字符串是否是json格式方法分享
- go执行二进制文件的方法:通过shell脚本来调用二进制文件,直接执行go的二进制文件会存在参数传递问题
- Scala 中将方法、函数、函数式编程和面向对象编程关系分析图
- CV之IC: 图像描述(Image Captioning) 的简介、使用方法、案例应用之详细攻略
- 数学建模学习(75):全局敏感性分析Morris 方法
- findstr 搜索多关键字的方法
- docker hub下载慢解决方法 使用daocloud的mirror
- 使用LoggerFactory.getLogger(xxx.class)方法在控制台打印日志信息