第三章 将命名空间声明添加到 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
其中:
-
namespace
是需要添加的命名空间。 -
prefix
是用于此命名空间的可选前缀。如果省略此参数,则会生成前缀。 -
schemaLocation
是此命名空间的可选架构位置。 -
allowMultiplePrefixes
控制给定命名空间是否可以使用不同的前缀多次声明。如果此参数为1
,则给定命名空间可以使用不同的前缀多次声明。如果此参数为0
,则如果您为同一命名空间添加具有不同前缀的多个声明,则仅使用最后提供的前缀。
检查必需的元素和属性
默认情况下,Web
服务不会检查标记为必需的属性对应的元素和属性是否存在。要使 Web
服务检查此类元素和属性是否存在,请将 Web
服务的 SOAPCHECKREQUIRED
参数设置为 1
。出于兼容性原因,此参数的默认值为 0。
控制空字符串参数的形式
通常,如果省略参数,Web
服务会省略其发送的 SOAP
消息中的相应元素。要更改此设置,请在 Web
服务类中将 XMLIGNORENULL
参数设置为 1
;在这种情况下,SOAP
消息包含一个空元素。
注意:此参数仅影响类型为 %String
的 Web
方法参数。
控制 SOAP
响应的消息名称
在 Web
服务中,可以控制从 Web
方法收到的响应中使用的消息名称。默认情况下,此消息名称是 Web
方法的名称,末尾附加有 Response
。以下示例显示了来自名为 Divide
的 Web
方法的响应;响应消息名称为 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
操作。
网友评论