PHP мыло, передавая комплексный тип параметра комплексного типа - PullRequest
0 голосов
/ 14 мая 2018

У меня проблема с передачей данных на этом мыле wsdl, у меня сложный тип complextype

<xs:schema elementFormDefault="qualified" targetNamespace="http://schemas.datacontract.org/2004/07/LibIf">
<xs:complexType name="RuleParams">
    <xs:sequence>
        <xs:element name="Parameters" nillable="true" type="tns:ArrayOfRuleParameter"/>
        <xs:element name="Result" type="xs:boolean"/>
    </xs:sequence>
</xs:complexType>
<xs:element name="RuleParams" nillable="true" type="tns:RuleParams"/>
<xs:complexType name="ArrayOfRuleParameter">
    <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="unbounded" name="RuleParameter" nillable="true" type="tns:RuleParameter"/>
    </xs:sequence>
</xs:complexType>
<xs:element name="ArrayOfRuleParameter" nillable="true" type="tns:ArrayOfRuleParameter"/>
<xs:complexType name="RuleParameter">
    <xs:sequence>
        <xs:element name="Name" nillable="true" type="xs:string"/>
        <xs:element name="Value" nillable="true" type="xs:anyType"/>
    </xs:sequence>
</xs:complexType>
<xs:element name="RuleParameter" nillable="true" type="tns:RuleParameter"/>

Я пытался использовать stdClass (), но он не работает.

$params = new \stdClass();
$params->RuleParams = new \stdClass();
$params->Parameters = new \stdClass();
$params->Result = true;
$RuleParameter1 = new \stdClass();
$RuleParameter1->Name = 'name';
$RuleParameter1->Value = 'value';
$RuleParameter2 = new \stdClass();
$RuleParameter2->Name = 'name2';
$RuleParameter2->Value = 'value2';
$ArrayOfRuleParameter = array($RuleParameter1,$RuleParameter2);
$params->RuleParams->Parameters->ArrayOfRuleParameter = (object) $ArrayOfRuleParameter;

Обычно я использую более простые веб-сервисы с меньшим количеством данных.в этом случае я могу отправить XML для структуры данных?

...