PHP SoapServer:如何选择XSD';选择';价值
我正在使用PHPPHP SoapServer:如何选择XSD';选择';价值,php,soap,xsd,wsdl,Php,Soap,Xsd,Wsdl,我正在使用PHPSoapServer类和相应的WSDL开发一个SOAP服务 SOAP模式定义(WSDL)允许“选择”类型:它需要包含的任一属性,如下所示: <xsd:element name="AnswerA"> <xsd:complexType name="typeA"> <xsd:choice> <xsd:element minOccurs="0" name="propB" type="ns0:typeB" /
SoapServer
类和相应的WSDL开发一个SOAP服务
SOAP模式定义(WSDL)允许“选择”类型:它需要包含的任一属性,如下所示:
<xsd:element name="AnswerA">
<xsd:complexType name="typeA">
<xsd:choice>
<xsd:element minOccurs="0" name="propB" type="ns0:typeB" /> -->
<xsd:element minOccurs="0" name="propC" type="ns0:typeC" />
</xsd:choice>
</xsd:complexType>
</xsd:element>
现在,我提供了一个PHP Soap服务器,该服务器使用包含这些类型的Soap消息进行响应,但仅使用propC set:
$typeA = new TypeA();
$typeA->setPropC(new TypeC('someValue'));
// ...
$mySoapServer = new SoapServer(/*....*/);
$mySoapServer->addFunction('myfunction');
function myfunction() {
return $typeA;
}
这是可行的,但在回答中,我总是得到“propB”,而从不得到“propC”,即使“propB”为空,而“propC”未设置:
<!-- ..... -->
<AnswerA>
<propB></propB>
</AnswerA>
<!-- ..... -->
这并不是完全错误,这不是我想要的:在XSD“choice”类型的情况下,我想要交付具有值的属性(我想,“null”也是某种值)。那么,在XSD“choice”类型的情况下,如何“告诉”PHPSOAPServer要传递哪个属性呢
<!-- ..... -->
<AnswerA>
<propB></propB>
</AnswerA>
<!-- ..... -->