我的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>
不幸的是,“由AXIS 1.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>
根据规范,SOAP mustUnderstand 可以添加到每个头文件中。但是,在我看来,如此定义的元素 MyHeader 不能包含此属性,因为生成的XML与XML规范不兼容 - 它不符合 cvc-的XML规则复合型
是否允许将 mustUnderstand 属性添加到此标头实例? AXIS framework 1.4是否正常工作?
答案 0 :(得分:0)
长话短说,请搜索“从标题中删除mustUnderstand属性”,这样可以为您提供解决方案;默认情况下,不应添加此标头;如果你需要实际使用它,那么我会修改标题部分的模式以包含这些SOAP属性;如果您想查看示例,请查看WS-I Claim schema(删除use =“禁止”)。