收藏

第三章 将命名空间声明添加到 SOAP 信封

2024-07-24  本文已影响0人  Cache技术分享

第三章 将命名空间声明添加到 SOAP 信封

将命名空间声明添加到 SOAP 信封

要将命名空间声明添加到由给定 Web 服务发送的 SOAP 消息的 SOAP 信封(<SOAP-ENV:Envelope> 元素)中,请修改该 Web 服务的每个 Web 方法,以便它调用 Web 服务的 %AddEnvelopeNamespace() 方法。此方法具有以下签名:

Method %AddEnvelopeNamespace(namespace As %String, 
                             prefix As %String, 
                             schemaLocation As %String, 
                             allowMultiplePrefixes As %Boolean) As %Status

其中:

检查必需的元素和属性

默认情况下,Web 服务不会检查标记为必需的属性对应的元素和属性是否存在。要使 Web 服务检查此类元素和属性是否存在,请将 Web 服务的 SOAPCHECKREQUIRED 参数设置为 1。出于兼容性原因,此参数的默认值为 0。

控制空字符串参数的形式

通常,如果省略参数,Web 服务会省略其发送的 SOAP 消息中的相应元素。要更改此设置,请在 Web 服务类中将 XMLIGNORENULL 参数设置为 1;在这种情况下,SOAP 消息包含一个空元素。

注意:此参数仅影响类型为 %StringWeb 方法参数。

控制 SOAP 响应的消息名称

Web 服务中,可以控制从 Web 方法收到的响应中使用的消息名称。默认情况下,此消息名称是 Web 方法的名称,末尾附加有 Response。以下示例显示了来自名为 DivideWeb 方法的响应;响应消息名称为 DivideResponse

<SOAP-ENV:Body>
   <DivideResponse xmlns="http://www.myapp.org">
       <DivideResult>.5</DivideResult>
   </DivideResponse>  
</SOAP-ENV:Body>

要指定不同的响应消息名称,请在 Web 方法定义中设置 SoapMessageName 关键字。

请注意,无法更改调用给定Web 方法的 SOAP 消息的名称;此消息的名称是方法的名称。但是,可以覆盖 HTTP 请求中给出的 SOAP 操作;请参阅覆盖默认 HTTP SOAP 操作。

上一篇 下一篇

猜你喜欢

热点阅读