SOAP и mixed type

camka

не самка
SOAP и mixed type

Нужно, чтобы SOAP вызов возвращал ИЛИ integer ИЛИ boolean, по аналогии с некоторыми php функциями, которые возвращают FALSE при ошибке или числовое значение при успешном выполнении.

Не удается реализовать эту возможность при помощи wsdl с конкретным указанием типа элемента в xml схеме.

Такое объявление возвращает объект со свойствами ::int или ::boo соответственно
Код:
<xsd:complexType name="mixed">
    <xsd:choice>
        <xsd:element name="int" type="xsd:integer"/>
        <xsd:element name="boo" type="xsd:boolean"/>
    </xsd:choice>
</xsd:complexType> 

// Returns
<mixed><int>334</int></mixed>
или
<mixed><boo>false</boo></mixed>
А нужно, чтобы возвращал именно переменную скалярного типа.

Код:
<mixed>343</mixed>
или
<mixed>false</mixed>
Для нагляности приведу php код.
PHP:
if (false === ($some_id = $soapclient->mixed_method()))
    echo 'boolean';
else
    echo 'integer '.$some_id;
Задача именно указать возможные типы посредством wsdl, и не используя xsd:anyType

P.S. В общем случае, типы могут быть не integer и boolean, а произвольные, но конкретно указанные в схеме.
 
Сверху