Zend Framework を使用して Web サービスを構築しています。WSDL の生成に Zend_Soap_AutoDiscover クラスを使用しています。この Web サービス フォームの例では、さまざまな複合型を使用しています。
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 を読んで理解したところから、任意のオブジェクトのプロパティを null に設定できるため、 nillable="true" が存在します。したがって、StockItemEntity オブジェクトのすべてのプロパティが null に設定されている場合でも、有効な XML ドキュメントを維持するには nillable="true" が必要です。
私の懸念は、これら 2 つのプロパティを常に Web メソッドに渡す必要があることです。「nillable = true」を削除して、プロパティがnullにならないようにすることは可能ですか? または、これらのプロパティに null 以外の値を強制する方法はありますか。Web サービス側でそれらを検証する必要がないようにしたいと考えていました。
ありがとう
敬具
ガブリエル