我有一个带有可选标头的 wsdl :
<s:element name="AuthIdentifier" type="tns:AuthIdentifier"/>
<s:complexType name="AuthIdentifier">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="identifier" type="s:string"/>
</s:sequence>
<s:anyAttribute/>
</s:complexType>
客户端正在使用集成软件 (tibco)
连接到我的服务并声称标头是必需的,因此他必须使用空值发送它:
<Header.AuthIdentifier>
<ns0:AuthIdentifier xmlns:ns0 = "http://www.tal.com/schemas"/>
</Header.AuthIdentifier>
如何使其成为可选项?这样他就不必发送整个标题了?有minOccurs
或类似的东西吗?或者它现在已经是可选的吗?
答案 0 :(得分:3)
根据“Web服务合同设计和版本控制”Thomas Erl等人(ISBN-13:978-0-13-613517-3)第15.4章,在WSDL中定义SOAP块:
WSDL 1.1规范不清楚是否有SOAP头 WSDL文档中描述的内容必须包含在消费者中或不包括在内。该 WS-I Basic Profile强制要求消费者包含它们, 但WDL 2.0提供了消费者是否应该选择的选择 被迫包括或不包括他们。第472页。
在WSDL 2.0中,您可以在自定义SOAP标头块中设置属性wsdl:required =“false”,以指示使用者是否必须包含此标头块。