我有一个带有可选标头的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
之类的东西?还是像现在一样已经是可选的了?
发布于 2016-08-22 23:52:40
根据"Web Service Contract Design & Versioning“,Thomas Erl等人(ISBN-13: 978-0-13-613517-3) 15.4章,在WSDL中定义SOAP块:
WSDL1.1规范不清楚WSDL1.1文档中描述的SOAP头是否必须包含在使用者中。WS-I Basic Profile强制要求消费者包含它们,但WDL 2.0提供了是否应该强制消费者包含它们的选项。第472页。
在WSDL2.0中,您可以将自定义SOAP标头块中的属性wsdl:required=设置为“false”,以指示使用者是否必须包括此标头块。
https://stackoverflow.com/questions/34920717
复制相似问题