2016-01-21 55 views
16

我有一個WSDL有一個可選的頭:如何在WSDL中將SOAP Header標記爲可選項?

<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

我與Tibco有同樣的問題。你修好了嗎? –

+2

這是一個定義頭部結構的代碼片段嗎?如果是,請嘗試'' –

回答

3

據 「Web服務合約設計&版本」 托馬斯·爾等人(ISBN-13:978-0-13-613517-3)第15.4,SOAP定義中的塊WSDL:

的WSDL 1.1關於在WSDL文檔中描述的SOAP頭文件 是否必須被消費者包含,規範尚不清楚。 WS-I Basic Profile強制要求消費者包含它們, ,但WDL 2.0提供了關於消費者是否應該被迫包含它們的選項 。頁面472.

在WSDL 2.0中,您可以在自定義SOAP標題塊中設置屬性wsdl:required =「false」,以指示消費者是否必須包含此標題塊。

相關問題