Я строю веб-сервис с использованием Zend Framework.Я использую класс Zend_Soap_AutoDiscover для генерации моего WSDL.В этом примере формы веб-службы я использую различные сложные типы:
StockItemEntity Class
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>
Из того, что я понял из чтения через Интернет, nillable = "true" есть, потому что свойства любого объекта могут быть установлены в null.Таким образом, nillable = "true" необходимо для поддержки действительного документа XML, даже если все свойства объекта StockItemEntity имеют значение null.
Меня беспокоит то, что эти два свойства всегда должны передаваться веб-методу.Можно ли удалить «nillable = true», чтобы заставить свойства не быть нулевыми?Или же есть какой-либо способ заставить ненулевые значения в этих свойствах.Я надеялся избежать проверки их на стороне веб-службы.
Спасибо
С уважением
Габриэль