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")。