自定义SOAP 1.1标头和mustUnderstand属性



My WebService(与SOAP 1.1规范兼容)使用xsd中定义的自己类型的标头MyHeader,如下所示:

<xs:complexType name="MyHeader">
    <xs:sequence>
       <xs:element name="MyElement1" type="xs:string"></xs:element>
       <xs:element name="MyElement2" type="xs:string"></xs:element>
    </xs:sequence>
</xs:complexType>

不幸的是,"由AXIS1.4框架"生成的SAOP消息具有MyHeader元素,该元素包含mustUnderstand="0"属性:

<ns:MyHeader soapenv:mustUnderstand="0" xmlns:ns="http://....">
   <ns:MyElement1>XXX</ns:MyElement1>
   <ns:MyElement2>YYY</ns:MyElement2>
</ns:MyHeader>

根据规范,可以将SOAPmustUnderstand添加到每个标头中。然而,在我看来,如此定义的元素MyHeader不能包含此属性,因为生成的XML与XML规范不兼容-它不符合cvc复杂类型的XML规则。

是否允许将mustUnderstand属性添加到此标头实例?AXIS框架1.4是否正常工作?

长话短说,请搜索"从标题中删除mustUnderstand属性",这将为您提供解决方案;默认情况下,不应添加此标头;如果您需要实际使用它,那么我会修改您的头部分的模式,以包含这些SOAP属性;如果您想查看一个示例,请查看WS-I声明模式(remove-use="prohibited")。

最新更新