camka
не самка
SOAP и mixed type
Нужно, чтобы SOAP вызов возвращал ИЛИ integer ИЛИ boolean, по аналогии с некоторыми php функциями, которые возвращают FALSE при ошибке или числовое значение при успешном выполнении.
Не удается реализовать эту возможность при помощи wsdl с конкретным указанием типа элемента в xml схеме.
Такое объявление возвращает объект со свойствами ::int или ::boo соответственно
А нужно, чтобы возвращал именно переменную скалярного типа.
Для нагляности приведу php код.
Задача именно указать возможные типы посредством wsdl, и не используя xsd:anyType
P.S. В общем случае, типы могут быть не integer и boolean, а произвольные, но конкретно указанные в схеме.
Нужно, чтобы 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:
if (false === ($some_id = $soapclient->mixed_method()))
echo 'boolean';
else
echo 'integer '.$some_id;
P.S. В общем случае, типы могут быть не integer и boolean, а произвольные, но конкретно указанные в схеме.