PHP SoapServer:如何选择XSD';选择';价值

PHP 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" /

我正在使用PHP
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>
<!-- ..... -->