为缓存web服务SOAP头发送正确的XML

为缓存web服务SOAP头发送正确的XML,xml,web-services,soap,intersystems-cache,intersystems,Xml,Web Services,Soap,Intersystems Cache,Intersystems,我创建了一个简单的头类: Class Sample.Headers Extends %SOAP.Header { Parameter NAMESPACE = "http://tempuri.org"; Property UserName As %String; } 在web服务中,我确保在SOAPHEADERS参数中设置了正确的名称空间: Parameter SOAPHEADERS = "UserName:Sample.Headers"; 我使用SoapUI发送以下XML:

我创建了一个简单的头类:

Class Sample.Headers Extends %SOAP.Header
{
    Parameter NAMESPACE = "http://tempuri.org";
    Property UserName As %String;
}
在web服务中,我确保在
SOAPHEADERS
参数中设置了正确的名称空间:

Parameter SOAPHEADERS = "UserName:Sample.Headers";
我使用SoapUI发送以下XML:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tem="http://tempuri.org">
   <soapenv:Header>
       <tem:UserName>This is the header</tem:UserName>
   </soapenv:Header>
   <soapenv:Body>
      <tem:Test>
         <!--Optional:-->
         <tem:argAge>10</tem:argAge>
      </tem:Test>
   </soapenv:Body>
</soapenv:Envelope>

这是标题
10
我得到以下错误:

错误#6254:应为标记,XML输入(这是标头)不在 用户名子项的正确格式(在第3行字符18处结束)


为了正确设置用户名,XML的正确格式是什么?

请看下面的示例:

注意:Header元素的所有直接子元素都必须是命名空间限定的


在本例中,XML的格式似乎有点不同,将名称空间嵌套为头属性“Trans”(在他们的示例中)的属性。这可能有点牵强,但我确实看到您的请求没有像这样显式地设置名称空间。

看看下面的示例:

注意:Header元素的所有直接子元素都必须是命名空间限定的

在本例中,XML的格式似乎有点不同,将名称空间嵌套为头属性“Trans”(在他们的示例中)的属性。这可能有点牵强,但我确实看到您的请求没有像这样显式设置名称空间。

只需要更改:

Property UserName As %String;

只是需要改变:

Property UserName As %String;


我用名称空间尝试了他们的示例,但仍然得到了相同的结果。我用名称空间尝试了他们的示例,仍然得到了相同的结果。