我正在使用Zend Framework構建一個Web服務。我正在使用Zend_Soap_AutoDiscover類來生成我的WSDL。我在這個Web服務的形式例如使用各種複雜類型:SOAP - nillable =「true」
StockItemEntity類
class StockItemEntity {
/** @var string */
public $sStockCode;
/** @var string */
public $sQty;
public function __construct($sStockCode, $sQty){
$this->sStockCode = $sStockCode;
$this->sQty = $sQty;
}
}
WSDL定義
<xsd:complexType name="StockItemEntity">
<xsd:all>
<xsd:element name="sStockCode" type="xsd:string" nillable="true"/>
<xsd:element name="sQty" type="xsd:string" nillable="true"/>
</xsd:all>
</xsd:complexType>
從我從閱讀在Web上的nillable理解=「true」,因爲任何對象的屬性都可以設置爲null。因此,即使StockItemEntity對象的所有屬性設置爲null,nillable =「true」也需要維護有效的XML文檔。
我擔心的是這兩個屬性必須始終傳遞給Web方法。是否有可能刪除「nillable = true」以強制屬性不爲null?否則有什麼辦法來強制這些屬性中的非空值。我希望避免在web服務端驗證它們。
感謝
親切的問候
加布裏埃爾
Oki所以說我設法設置nillable ='false屬性。如果soap_client嘗試傳遞空值,會發生什麼。他們會得到一個soap_fault? – 2011-02-15 09:24:09